在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的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 8 中隐藏音量 HUD

在 iOS 中隐藏标签而不破坏视图

如何在ios中切换隐藏和查看密码?

在IOS的Storyboard中隐藏子视图

在所有视图控制器中隐藏状态栏 - IOS [重复]

我如何在 iOS 9 中隐藏顶部键盘栏