iPhone在故事板中呈现和解散导航视图控制器?
问题描述:
我有呈现导航控制器与内容控制器根认为,这是它的样子: iPhone在故事板中呈现和解散导航视图控制器?
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。
我该如何解决这个问题?
答
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
UINavigationController *destination = segue.destinationViewController;
UIViewController *vc = [[destination viewControllers] objectAtIndex:0];
vc.delegate = self;
}
为了使这个代码更健壮,你可能要检查desitinationViewController是一个UINavigationController