Отправка данных из DetailViewController в MasterViewController
Это именно то, что я пытаюсь сделать.
wizardviewcontroller.m
- (IBAction)onCountryClick:(id)sender {
MJDetailViewController *detailViewController = [[MJDetailViewController alloc] initWithNibName:@"MJDetailViewController" bundle:nil];
[self presentPopupViewController:detailViewController animationType:MJPopupViewAnimationSlideLeftRight];
}
Пользователь нажимает кнопку страны, всплывающее окно со списком.
когда пользователь выбирает строку, заголовок кнопки должен измениться.
Это мой подробный обзор,
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath {
WizardViewController *mj = [[WizardViewController alloc] initWithNibName:@"WizardViewController" bundle:nil];
mj.countryselected = [countryNames objectAtIndex:indexPath.row];
[mj.countryButton setTitle:mj.countryselected forState:UIControlStateNormal];
[self dismissPopupViewControllerWithanimationType:MJPopupViewAnimationFade];
}
DetailViewController
увольняет, но countryButtonTitle
не обновляется. Я знаю, что это потому, что волшебник не освежает. Я хотел бы знать правильный обходной путь в этом случае.
Надеюсь, что это поможет получить лучший ответ.
1 ответ
Решение
Составить протокол в MJDetailViewController
@protocol MJDetailViewControllerDelegate;
@interface MJDetailViewController : UIViewController
@property (nonatomic,assign) id< MJDetailViewControllerDelegate> delegate;
@end
@protocol MJDetailViewControllerDelegate <NSObject>
- (void)selectedContry:(NSString *)title;
@end
И звоните как
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath: (NSIndexPath *)indexPath {
NSString *title = [countryNames objectAtIndex:indexPath.row];
if ([self.delegate respondsToSelector:@selector(selectedContry:)]) {
[self.delegate selectedContry:title];
}
[self dismissPopupViewControllerWithanimationType:MJPopupViewAnimationFade];
}
добавлять MJDetailViewControllerDelegate
как protocol
в WizardViewController.h
)
Сейчас реализуем selectedContry:
метод в WizardViewController.m
лайк:
- (void)selectedContry:(NSString *)title
{
[self.countryButton setTitle:title forState:UIControlStateNormal];
}
Надеюсь, это поможет вам.