Отправка данных из 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];
}

Надеюсь, это поможет вам.

Другие вопросы по тегам