如何将导航栏(不带导航控制器)和搜索栏添加到TableView

时间:2013-08-24 12:54:37

标签: iphone ios uitableview interface-builder uisearchbar

我觉得这真的不应该给我带来的麻烦和我错过的东西,但我似乎无法让它发挥作用。所以我想要一个在3个不同的TableView之间切换的TabBar。所有这些都需要一个NavigationBar而不是一个NavigationController(因为它都是在初始模态进入TabBarController之后发生的)。我所追求的完美例子是Apple Maps书签。

我尝试了三种不同的方法,但都以不同的方式失败了:

  1. 添加一个TableView,然后向其中添加一个NavBar,然后添加SearchBar。 SearchBar只是替换了NavBar。
  2. 添加视图,然后将NavBar添加到此。然后将TableView添加为subView。当我将SearchBar添加到这个子视图时,它最终会在原型单元格下面运行(没有尝试运行它,因为我必须编写一个新的ViewController来处理TableView现在是一个子视图并且不认为值得的事实它只是给出了布局问题。)
  3. 添加视图,然后为此添加导航栏。然后添加一个具有TableViewController的ContainerView。这只是在跑步时崩溃了。我不确定这里的错误是什么,因为我不太确定在哪里可以捕获任何例外......
  4. 到目前为止,我已经在IB中实现了我的大多数界面,并希望尽可能地保持这种方式,但我确信必须有一些明显的东西,我在这里缺少。我已经很长时间没有进行过iOS编程了,所以如果我错过了一些基本的东西,那就轻松吧!任何帮助将非常感激。即使它只是说我应该采用哪种方法并继续尝试。谢谢!

    修改

    我应该提一下,当我说TableViewController时,我的意思是TableViewController的自定义子类,它使用FetchedResultsController来填充单元格。

2 个答案:

答案 0 :(得分:10)

如果您要对新的视图控制器(或带有指向导航控制器的选项卡的标签栏控制器)进行模态转换,并且您希望该视图控制器具有导航栏,那么您应该选择视图控制器要以模态方式呈现,将其嵌入导航控制器(编辑器 - >嵌入 - >导航控制器),然后以模态方式转换到导航控制器。相同的概念适用于您的标签栏控制器,除了它们将是关系segues。 image of modal segue with navigation bar

答案 1 :(得分:2)

您应该向UIViewController(而不是表视图控制器)添加导航栏,然后添加表视图,并向该表视图添加搜索栏和单元格。我测试了这个,它工作正常。