将 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的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar?
将 subView 添加到 UINavigationBar 并将其删除
将 UIImageView 全局添加到 UINavigationBar 而不是标题