【发布时间】:2012-05-02 04:13:48
【问题描述】:
我有显示导航控制器和内容控制器的根视图,它是这样的:
NavigationController 以模态方式呈现,ProjectTypeSelectionView 是他的根控制器。当点击注销按钮时,我想关闭模式视图并返回 LoginScreenViewController。
所以我在 prepareSegue LoginScreen 中设置为委托:
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
UINavigationController *destination = segue.destinationViewController;
if ([[destination ] respondsToSelector:@selector(setDelegate:)]) {
NSLog(@"%@", destination);
[destination setValue:self forKey:@"delegate"];
}
}
然后在 ProjectTypeViewController 里面添加这个方法:
- (IBAction)logout:(id)sender {
[self.delegate projectTypeSelectionViewControllerDidFinish];
}
当点击注销按钮时调用。令我惊讶的是,这并没有解雇控制器。什么都没有发生,即使你一切都已连接。
我已经跟踪到错误 - 当调用 prepareSegue 时 NavigationController 的 delagate 设置为 LoginScreenViewController,插入将 ProjectTypeController 的委托设置为 LoginScreenViewController。
我该如何正确解决这个问题?
【问题讨论】:
标签: iphone uinavigationcontroller presentmodalviewcontroller uistoryboard