我已经创建了一个两个闪屏的iPhone应用程序。之后,用户被带到第一个视图。我添加了一个UINavigationController。它工作得非常好。
如何删除打开视图的导航栏?
MainWindow
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.splashScreen = [[SplashScreen alloc]
initWithNibName:@"SplashScreen"
bundle:nil];
if (self.pageController == nil) {
openingpage *page=[[openingpage alloc]initWithNibName:@"openingpage" bundle:[NSBundle mainBundle]];
self.pageController = page;
[page release];
}
[self.navigationController pushViewController:self.pageController animated:YES];
[window addSubview:splashScreen.view];
[splashScreen displayScreen];
[self.window makeKeyAndVisible];
return YES;
}
发布于 2012-02-11 17:47:32
在视图控制器中尝试此方法:
// swift
self.navigationController?.setNavigationBarHidden(true, animated: true)
// objective-c
[self.navigationController setNavigationBarHidden:YES animated:YES];
更多说明:
UINavigationController
有一个属性navigationBarHidden,它允许您隐藏/显示整个导航控制器的导航栏。
让我们看看下一个层次结构:
--UINavigationController
------UIViewController1
------UIViewController2
------UIViewController3
三个UIViewController中的每一个都有相同的导航栏,因为它们在UINavigationController中。例如,您想隐藏UIViewController2的栏(实际上这与在哪个栏中没有关系),然后在您的UIViewController2中写入:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:YES]; //it hides the bar
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:NO animated:YES]; // it shows the bar back
}
发布于 2017-08-09 18:04:52
Swift 4:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
navigationController?.setNavigationBarHidden(true, animated: true)
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(true)
navigationController?.setNavigationBarHidden(false, animated: false)
}
发布于 2018-09-21 04:29:30
这对我来说很有效:
Swift 4
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.setNavigationBarHidden(true, animated: false)
}
//reappears navigation bar on next page
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
navigationController?.setNavigationBarHidden(false, animated: true)
}
https://stackoverflow.com/questions/9239067
复制相似问题