在IOS中隐藏UINavigationItem
Posted
技术标签:
【中文标题】在IOS中隐藏UINavigationItem【英文标题】:Hide UINavigationItem in IOS 【发布时间】:2014-03-20 07:24:13 【问题描述】:我编写的代码运行良好,直到我使用 BannerView
在应用程序中展示广告。为了在所有视图中添加 BannerView
,我在 AppDelegate 的 didFinishLaunchingWithOptions:
中使用了以下代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
if (IS_IPHONE())
UIStoryboard* sb = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil];
self.viewController = [sb instantiateViewControllerWithIdentifier:@"ViewController"];
else
UIStoryboard* sb = [UIStoryboard storyboardWithName:@"Main_iPad" bundle:nil];
self.viewController = [sb instantiateViewControllerWithIdentifier:@"IpadViewController"];
self.navigationController=[[UINavigationController alloc]initWithRootViewController:self.viewController];
self.bannerViewController = [[BannerViewController alloc] initWithContentViewController:self.navigationController];
self.window.rootViewController = self.bannerViewController;
[self.window makeKeyAndVisible];
return YES;
但是当我使用这段代码时,UINavigationItem 出现在顶部,隐藏了我的实际控件。我想隐藏 UINavigationItem,而不仅仅是按钮。我在谷歌上得到了以下链接。
Stack Overflow Question 1 Stack Overflow Question 2第一个问题没有答案,第二个问题的答案也没有解决我的问题,因为我想隐藏的是 UINavigationItem 本身,而不仅仅是按钮。我尝试在界面生成器中将 topBar 设置为 none 并尝试使用以下代码:
self.navigationController.toolbarHidden = YES;
在viewDidLoad
,但没有任何帮助。当我从 AppDelegate 的 didFinishLaunchingWithOptions:
方法中注释掉以下行时,视图很好,但是广告不会显示。
self.window.rootViewController = self.bannerViewController;
可以做些什么来纠正这个问题?
【问题讨论】:
试试self.navigationController.navigationBarHidden = YES;
@arthan.v 没有帮助。请注意,我希望隐藏 UINavigationItem。上面的代码实际上说它不应该被隐藏。
试试YES
..我忘了改..现在我改了。
@arthan.v 非常感谢。这解决了我的问题。请将其作为答案发布,以便对其他人有所帮助。
【参考方案1】:
要隐藏navigationbar
,请使用navigationBarHidden
属性。喜欢,
self.navigationController.navigationBarHidden = YES;
供您参考检查,UINavigationController Class Reference
如果您想在隐藏时为 navigationBar
设置动画,请使用
[self.navigationController setNavigationBarHidden:YES animated:YES]
【讨论】:
以上是关于在IOS中隐藏UINavigationItem的主要内容,如果未能解决你的问题,请参考以下文章