将 UINavigationBar 添加到没有 UINavigationController 的 UITableViewController

Posted

技术标签:

【中文标题】将 UINavigationBar 添加到没有 UINavigationController 的 UITableViewController【英文标题】:Add a UINavigationBar to a UITableViewController without a UINavigationController 【发布时间】:2010-10-27 16:19:17 【问题描述】:

我有一个以前在 UINavigationController 中使用的现有 UITableViewController。

我需要将其转换为模态视图。但是,我仍然希望在顶部有一个导航栏。我知道这听起来很奇怪——如果我想要一个 UINavBar,为什么不把它呈现在 UINavigationController 中呢?我想在没有与我的 UINavigationController 关联的 UITabBarController 的情况下呈现它。

我尝试打开 XIB,添加新视图,将 UITableView 移动为子视图并将 NavigationBar 添加到该新视图。然而,这似乎没有产生任何影响,并且仍然呈现整个 tableview - 没有导航栏可见。我认为这是因为该类是 UITableViewController 的子类。

我需要将其转换为 UIViewClass 吗?在代码中或通过 Interface Builder 将导航栏添加到现有的 UITableViewController 有没有好的方法?

感谢您提供有关如何处理此问题的任何建议。

【问题讨论】:

【参考方案1】:

您是否更改了文件所有者视图的 XIB 中的连接?它应该指向包含导航栏和表格视图的外部视图。

但我不确定我是否理解您为什么不想使用导航控制器。只需这样做:

MyViewController *viewController = [[[MyViewController alloc] init] autorelease];
UINavigationController *navController = [[[UINavigationController alloc] initWithRootViewController:viewController] autorelease];
[self presentModalViewController:navController animated:YES];

我在呈现模态视图时一直这样做 - 这似乎比直接在视图中包含导航栏更干净。

【讨论】:

谢谢。这对我来说有点像前额拍板。很有道理。

以上是关于将 UINavigationBar 添加到没有 UINavigationController 的 UITableViewController的主要内容,如果未能解决你的问题,请参考以下文章

将按钮添加到 UINavigationBar 的子类

如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar?

将 subView 添加到 UINavigationBar 并将其删除

将 UIImageView 全局添加到 UINavigationBar 而不是标题

如何将全局 barButtonItems 添加到自定义 UINavigationBar?

如何将附加的阴影添加到 uinavigationbar 和 uitoolbar