所以我开始尝试使用故事板。
所以我的故事板如下
导航控制器 - > tableviewcontroller - > tabBarController - > tableViewController作为标签栏的项目(通过关系segue购买链接)
最后一个tableviewcontroller确实出现了一个导航栏,但我无法在其上添加任何栏按钮项。甚至代码self.navigationItem.rightBarButtonItem = self.editButtonItem也不会使它出现。
事情是第一个tableviewcontroller它确实有效(代码和设计师工作)。我怀疑它必须与第一个导航控制器做一些事情。
我确实尝试嵌入在tableviewcontroller中的导航控制器,但只是鞋2导航栏。
感谢任何帮助
谢谢,
编辑:添加故事板截图
答案 0 :(得分:1)
根据我自己的经验,您通常会使用以下序列:
tabBarController - > navController - > tableViewController
换句话说,一个标签栏控制器,其标签栏项目包含导航控制器,而导航控制器又包含一个表格。如果这不是您正在寻找的解决方案或按钮未显示,您是否可以包含故事板的快照?
更新: 如果您尝试使标签栏动态化,则需要更改tabBarController.viewControllers正在使用的数组。正如评论中所提到的,如果您遵循界面指南,这不是最佳方法,但这是我如何使其工作:
//Initial tab bar items
self.tabBarController.viewControllers =
[NSMutableArray arrayWithObjects:originalItem1, originalItem2, nil];
//Now let's replace the old items with some new ones!
self.tabBarController.viewControllers =
[NSMutableArray arrayWithObjects: replacementItem1, replacementItem2, replacementItem3, nil];
如您所见,我们最初将标签栏设置为包含两个标签栏项(originalItem1& 2)。然后下一位代码用一些新代码替换那些项目(replacementItem1& 2& 3)。由于您似乎正在尝试根据应用当前所在的视图更改选项卡,因此您可能希望将此包含在viewWillLoad方法中。这意味着标签栏应该在视图即将加载时更新。当然,您需要在几乎每个视图中设置一些条件,以便标签栏不断变换为您想要的那个。
不幸的是,这更像是一种程序化方法,而您正在使用故事板。我没有看到单独在故事板中完成此操作的明显方法,但代码应该能够提供帮助。