【问题标题】:Navigation title not showing on view with tab view controller, but "back" navigation works导航标题未显示在选项卡视图控制器的视图中,但“返回”导航有效
【发布时间】:2014-02-06 22:35:45
【问题描述】:

我对 iOS Objective-C 开发比较陌生,遇到了一个我找不到解决方案的问题。

我有一个Table View Controller,上面有两个原型单元,可以很好地填充。这个Table View Controller 是三个Tab Views 之一,发送到Tab ViewsView 有一个Navigation Controller。这意味着Tab Views 中的视图也有一个Navigation 栏。该栏工作正常,就“后退”按钮按预期工作而言,并且栏就位。但是,(至少在列表视图中)Navigation Bar 没有被完全识别 - 它的标题没有出现,表格单元格直接在状态栏下方开始,而不是在导航栏下方。

这里有几个显示问题的屏幕截图: Xcode 中出现的内容(我期望发生的情况) 然后在设备上,这就是实际显示的内容 - 后退按钮到位并且工作正常,但没有标题字段,并且表格单元格开始太高。

我尝试添加Navigation Bar's 和Navigation Items,虽然添加Navigation Item 允许我在Xcode 中添加标题,但它仍然没有出现在测试中的设备上。我还尝试在此视图之前添加另一个 Navigation Controller,但这也没有解决问题,并且导致导航问题进一步向下延伸。

希望我已经足够清楚了,如果我需要发布更多信息,请说 - 我对 Xcode 比较陌生,因此不确定哪些确切适用,哪些不适用。谢谢!

【问题讨论】:

    标签: ios xcode uinavigationcontroller uinavigationitem uitabview


    【解决方案1】:

    请尝试此代码,它可能会修复您的桌子位置

    // Since in iOS7 the nav bar is translucent by default, so the table view starts at (0,0)
    // you can either disable the translucent, which i don't recommend unless you really want to
    // or just add 64 pixel on the top of your table view
    [self.YOURTABLEVIEW setContentInset:UIEdgeInsetsMake(64, 0, 0, 0)];
    

    对于标题,请试试这个

    self.tabBarController.navigationItem.title =@"YOUT TITLE NAME";
    

    希望对您有所帮助..

    【讨论】:

    • 感谢您的回答(和编辑),@Xu! setContentInset 工作,但不幸的是 navigationItem.title 部分没有 - 我仍然只是得到工作后退按钮,但没有标题。
    • @edparry 你介意告诉我你是如何添加导航控制器的吗?我在本地测试,标题对我有用。
    • 嗨@Xu - 我已经uploaded 给Imgur 截屏了我的故事板,并对其进行了注释以显示所有内容如何组合在一起。我描述的问题是与Tab View Controller 链接的三个视图 - 希望它有意义。
    • 你能试试这个self.tabBarController.navigationItem.title =@"fafda"; 从你的屏幕截图中,好像你在标签栏控制器中有一个导航控制器。我在本地测试了完全相同的层次结构,它有效
    【解决方案2】:

    假设您的层次结构为

    NavigationController -> ViewController  -> TabBarController -> ViewController1
                                                                -> ViewController2
                                                                -> ViewController3
    

    如果要在viewcontroller1中隐藏导航项,添加下面一行

     self.navigationController.navigationBarHidden = YES;
    

    如果要在 viewcontroller2 中显示标题,请在

    中添加以下行
    self.navigationController.navigationBarHidden = NO; //add this if you hide navItem viewcontroller1
    [self.parentViewController.navigationItem setTitle:@"Title"];
    

    如果要在 viewcontroller3 中隐藏后退按钮并显示标题,请添加以下行

     self.navigationController.navigationBarHidden = NO;
    [self.parentViewController.navigationItem setTitle:@"Contacts"];
    
    self.parentViewController.navigationItem.hidesBackButton=YES; 
    

    如果您在切换标签时遇到问题,请将此行添加到 viewdidAppear 方法而不是 ViewdidLoad 。

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题,但是我造成这个问题的原因是我的按钮操作是连接到实际的表本身而不是表控制器。我删除了模态动作并为表格控制器创建了一个新动作,它解决了问题。

      【讨论】:

        【解决方案4】:

        尝试从情节提要或笔尖点击导航栏。

        然后将您的标题添加到属性中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-05-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-11-21
          • 1970-01-01
          相关资源
          最近更新 更多