【发布时间】:2014-01-14 22:41:48
【问题描述】:
我对 iOS 还是很陌生。我有一个带有嵌入式 UINavigationController 的 UIViewController,我通过将此代码添加到 viewDidLoad 方法来隐藏第一个视图上的栏:
if (self) {
self.navigationController.navigationBarHidden = YES;
self.navigationItem.title = @"";
}
然后我将这个 View 连接到另一个 UIViewController 与一个序列(由第一个 View 上的按钮触发)并将这段代码添加到它的 viewDidLoad 方法中:
if (self) self.navigationController.navigationBarHidden = NO;
一开始一切正常。当我加载应用程序时,导航栏消失了,当我导航到第二个(子)视图时,导航栏就在那里。然后当我点击后退按钮时,它会返回到第一个(父)视图但 NavBar 又回来了。
我尝试添加命名序列“BackToMain”并添加我放置在第二个视图中的 prepareSeque 方法:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"BackToMain"]) {
UINavigationController *parentNavigationController = segue.destinationViewController;
parentNavigationController.navigationController.navigationBarHidden = YES;
}
}
但它永远不会被调用。
理想情况下,我会在父视图中放置一个方法,以便在每次显示 NavBar 时简单地隐藏它。类似的东西:
- (void)processIncomingSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if (self) self.navigationController.navigationBarHidden = NO;
}
但我真的不知道这是否可能。
【问题讨论】:
标签: ios objective-c uiviewcontroller uinavigationcontroller