modalViewController делегировать обратные вызовы - как? - PullRequest
1 голос
/ 18 июля 2011

У меня есть некоторый контроллер вида, и когда я нажимаю какую-то кнопку, я делаю modalView (обернутый с UINavigationController) и представляю его.

DscViewController *enterDescription = [[[DscViewController alloc] init] autorelease];


    UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:enterDescription];
    [self presentModalViewController:navController animated:YES];
    [navController release];

Вопрос в том, как заставить мой (родительский) контроллер представления быть делегированным, и когда я нажимаю на какую-то кнопку в modalViewController (например, Done), чтобы вызвать какой-либо метод в моем родительском viewController, чтобы закрыть модал и сделать некоторую экономию от модальный ввод?

1 Ответ

1 голос
/ 18 июля 2011

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

Если по какой-то причине вы обрабатываете только хранилище в parentViewController, вы можете указать действие кнопки done на метод в вашем текущем viewController, а затем использовать self.parentViewController, чтобы вызвать родительский метод для хранения.

или просто установите делегирование кнопок непосредственно на self.parentViewController

[button addTarget:self.parentViewController action:@selector(someMethodInParentViewController) forControlEvents:UIControlEventTouchUpInside];
...