Перезагрузить ParentViewController - PullRequest
       29

Перезагрузить ParentViewController

0 голосов
/ 17 августа 2010

У меня есть приложение для iPhone, где я показываю страницу настроек, используя модальное представление

[self presentmodalviewcontroller:tempcontroller animated:yes];

Когда пользователь заканчивает настройки, он может вернуться на предыдущую страницу.

[self.dismissmodalviewcontroller animated:YES];

Теперь я хочу перезагрузить мою главную страницу, когда пользователь возвращается со страницы настроек.Я читал кое-что, где я должен использовать @protocol and delegate, чтобы это произошло. Я прошел некоторые уроки в Интернете по этой теме.Но я не смог этого сделать. У меня нет знаний о @protocol and delegate, поскольку я новичок в разработке для iPhone.

Пожалуйста, помогите мне с некоторыми хорошими уроками.Было бы здорово, если бы вы могли предложить мне любую ссылку с пошаговым описанием моей потребности.

С нетерпением ждем вашей помощи ....

Заранее спасибо

Joy

Ответы [ 2 ]

2 голосов
/ 17 августа 2010

Другой более простой вариант - использовать NSNotificationCenter.Посмотрите на эту

отправку данных на предыдущий экран в iphone

0 голосов
/ 17 августа 2010

Joy

Допустим, у вас есть viewController, который представляет другой модально - назовите его «root».

Модал называется "Модал"

"Корень" скажет,

[self presentModalViewController:Modal];

Так как же Root узнает, когда уволить Модал? Лучший способ сделать это - составить «протокол» для этого поведения.

В заголовочном файле для Modal будет такой код:

@protocol ModalViewDelegate <NSObject>

-(void)modalViewControllerDidFinish:(UIViewController *)viewController;

@end

Тогда должна быть переменная экземпляра для модального:

id<ModalViewDelegate> delegate;

со свойством:

@property (assign) id<ModalViewDelegate> delegate;

Это делает так, что каждый раз, когда Модал отправляет сообщение своему свойству «делегат», мы знаем, что у него есть метод - (void) modalViewControllerDidFinish:

Допустим, внутри модала есть кнопка, которую вы хотите закрыть. На кнопку просто нужно позвонить [delegate modalViewControllerDidFinish:self];

В заголовочном файле для root вы объявляете класс следующим образом:

@class Root : UIViewController <ModalViewDelegate>

И вы реализуете метод modalViewControllerDidFinish следующим образом:

-(void)modalViewControllerDidFinish:(UIViewController *)controller {
    // any action you need to take on controller
    [self dismissModalViewControllerAnimated:YES];
}

Имеет ли это смысл?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...