Проблема перезагрузки данных gridView после закрытия модального контроллера - PullRequest
0 голосов
/ 24 мая 2011

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

Информация изменена, но мне не удается перезагрузить данные gridView, когда модальныйвид контроллера уволен.Прямо сейчас у меня есть действие, чтобы отклонить модальное внутри контроллера модального представления.Все работает хорошо, я просто не могу перезагрузить данные для gridView из контроллера модального представления.

Я где-то читал, что одним из вариантов является создание делегата, который сможет отклонить контроллер модального представленияиз родительского контроллера представления я просто не могу найти примеры или хорошие уроки о том, как это сделать.Правда в том, что я знаю, как использовать делегатов, но не совсем уверен, как правильно их реализовать.

Может ли кто-нибудь указать мне правильное направление здесь?Может быть, у кого-то есть лучший вариант.Я открыт для любых предложений.

1 Ответ

3 голосов
/ 24 мая 2011

Если я ясно понимаю, вы хотите перезагрузить сетку, содержащуюся в вашем родительском контроллере представления, когда вы отклоняете модальный контроллер представления. Если так, то вот как:

Объявите протокол в вашем ModalViewController, выполнив что-то вроде

@protocol MyViewControllerDelegate;

@interface MyViewController : UIViewController {

    id<MyViewControllerDelegate>delegate;
    // Your stuff
}

@property (nonatomic, assign) id<MyViewControllerDelegate>delegate;

@end

@protocol MyViewControllerDelegate <NSObject>

-(void)viewControllerWasDismissedOrAnyOtherNameYoudLike;

@end

А в вашем файле .m просто @synthesize делегат.

Просто когда вы вызываете dismissModalViewController: animated :, также вызывайте [делегировать viewControllerWasDismissedOrAnyOtherNameYoudLike].

В вашем контроллере представления с представлением сетки импортируйте файл заголовка вашего modalviewcontroller, следуйте протоколу

@interface MyGridViewController : UIViewController <MyViewControllerDelegate>

Когда вы запускаете контроллер Modalview, присвойте делегату self и реализуйте метод viewControllerWasDismissedOrAnyOtherNameYoudLike. Вуаля!

...