我是IOS的新手,
我想向UINavigationBar
添加UITableViewController
,我试过这个:
var navBar: UINavigationBar = UINavigationBar(frame: CGRect(x:0, y:0, width:320, height:80))
然后,
self.view .addSubview(navBar)
谢谢
答案 0 :(得分:15)
您无法像这样简单地将NavigationBar
添加到UITableViewController
。
拥有UINavigationController
和NavigationBar
的最简单方法是从Storyboard中执行此操作。
步骤: -
将 UITableViewController 对象从对象库拖到故事板。
突出显示 UITableViewController ,转到编辑 - >嵌入 - >导航控制器,如下面的屏幕截图: -
转到文件 - >新 - >文件.. - > iOS - > Cocoa Touch Class ,并创建一个自定义TableViewController类,如下面的屏幕截图: -
您可以使用自定义类文件执行任何操作。如果需要,您还可以添加自定义UINavigationController
类,并且可以将自定义类附加到故事板内的对象。
答案 1 :(得分:5)
如果只是通过导航栏显示模态 UITableViewController
的情况,那么从代码中执行此操作的最简单方法是在UINavigationController
中显示{ {1}} UITableViewController
:
呈现视图控制器:
rootViewController
目标模态UITableViewController:
let sourceSelectorTableViewController = SourceSelectorTableViewController()
let navigationController = UINavigationController(rootViewController: sourceSelectorTableViewController)
self.presentViewController(navigationController, animated: true, completion: nil)
答案 2 :(得分:2)
最好的解决方案是提出
的UITableViewController
as
的UINavigationController
let topicsList = TopicsListViewController()
let topicsListNavContrl = UINavigationController(rootViewController: topicsList)
presentViewController(topicsListNavContrl, animated: true) { () -> Void in
print("completed")
}
答案 3 :(得分:-1)
您可以通过编程方式执行此操作。
DataTableViewController *vc = [[DataTableViewController alloc] initWithStyle:UITableViewStylePlain];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc];
[self presentViewController:nav animated:YES completion:nil];