我想通过在 Swift 中以编程方式将 UINavigationController 与 UITableViewController 嵌入 UITableViewController 这是 UITab
Posted
技术标签:
【中文标题】我想通过在 Swift 中以编程方式将 UINavigationController 与 UITableViewController 嵌入 UITableViewController 这是 UITabBarViewController 的子视图【英文标题】:I would like to embed UINavigationController with UITableViewController which is the sub-view of UITabBarViewController by programmatically in Swift 【发布时间】:2014-11-15 03:34:18 【问题描述】:最近想做一个自学App,这个App看起来像ios中的Contacts App。首先,我有两个 UITableViewController 连接到 UITabBarViewController。然后我想通过编码将 UINavigationController 与这两个表视图嵌入(在这种情况下,我不想通过设计将它嵌入到 Storyboard 中)。但我坚持下去。这是我在 AppDelegate
中的代码func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
let tabBar : UITabBarViewController = UITabBarViewController()
let tableView1 : UITableViewController = UITableViewController()
let nav = UINavigationController(rootViewController: tableView1)
let tableView2 : UITableViewController = UITableViewController()
let nav2 = UINavigationController(rootViewController: tableView2)
tabBar.viewControllers = [nav, nav2]
self.window?.rootViewController = tabBar
return true
结果总是显示第一个tableView1。如何让它在 UITabBarViewController 中显示两个选项卡选项(在视图底部)?如果我通过在 Storyboard 中进行设计来实现它,我相信它会正常工作。但是通过编码,我不知道如何解决它。 请指导我。提前致谢!
【问题讨论】:
请更新您的代码以使其可运行。mainView
来自哪里?不是UITabBarViewController
,而是UITabBarController
。
您好 Rintaro,感谢您查看我的代码。是错别字的问题。 mainView 应该是tabBar*,它是UITabBarViewController 的对象。并且是另外2个UITableViewController的主视图。
【参考方案1】:
UIKit 中没有UITabBarViewController
。它被称为UITabBarController
。你的 ViewControllers 需要有 NavigationItems。如果您像在代码中一样显示它们,您将在底部有一个 Tabbar,但上面没有任何可见的东西。在您的情况下, NavigationControllers 是您需要定义 nav.navigationItem.title = ...
编辑: 我意识到你没有初始化窗口。这与您的其他问题无关,但您的代码看不到任何内容。所以你必须把它改成:
self.window = UIWindow(frame: UIScreen.mainScreen().bounds);
self.window?.rootViewController = tabBar
self.window?.makeKeyAndVisible();
【讨论】:
感谢您的回答,但我没有运气。 为什么,当我运行您的代码并与上面的行交换时,它会按预期显示控制器? 当我运行时,它会显示一个 tableview 但它不显示标题但是我已经设置了这两个 tableview 的标题。我对 Swift 完全陌生,所以我真的不知道。以上是关于我想通过在 Swift 中以编程方式将 UINavigationController 与 UITableViewController 嵌入 UITableViewController 这是 UITab的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 中以编程方式为 CollectionView 设置插图
当 iAd 横幅出现时,如何将视图的内容上移? (在 Swift 中以编程方式)