我有一些视图控制器,当我点击一些按钮时,我会创建modalView(用UINavigationController包装)并呈现它。
DscViewController *enterDescription = [[[DscViewController alloc] init] autorelease];
UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:enterDescription];
[self presentModalViewController:navController animated:YES];
[navController release];
问题是,如何使我的(父)视图控制器成为委托,当我点击modalViewController上的某个按钮(例如Done)来调用我的父viewController中的某个方法来解除模态并从中做一些节省模态输入?
答案 0 :(得分:1)
我认为让一个控制器责怪它的父控制器做它应该handel的工作是不错的做法。您始终可以使用self.parentViewController
来关闭您当前所处的模式。
如果由于某种原因您只在parentViewController中处理存储,那么您可以将done
按钮操作指向当前viewController中的方法,然后使用self.parentViewController
触发父方法进行存储。
或者只是将按钮直接委托给self.parentViewController
[button addTarget:self.parentViewController action:@selector(someMethodInParentViewController) forControlEvents:UIControlEventTouchUpInside];