以编程方式在导航控制器中设置初始viewController(Layer SDK)

时间:2015-11-29 05:47:45

标签: ios iphone swift uinavigationcontroller

我想将Layer SDK添加到我的应用程序中(使用Swift)。

此处的所有视图控制器均以编程方式创建。因此,我无法接受他们。我的应用程序中有4个选项卡(UITabBarController)。其中一个是聊天。在聊天标签中,我创建了一个到UINavigationController的segue。现在,我想在此conversationListViewController中加载UINavigationController。为此,我为这个UINavigationController创建了一个类,即ConversationListViewController,并添加了以下代码:

class ChatNavigationViewController: UINavigationController {
  var conversationListViewController: ConversationListViewController!
    var layerClient: LYRClient!
      override func viewDidLoad() {
        let appDelegate = UIApplication.sharedApplication().delegate as!AppDelegate
        self.layerClient = appDelegate.layerClient
        self.conversationListViewController = ConversationListViewController(layerClient: appDelegate.layerClient)
        self.conversationListViewController.displaysAvatarItem = true

        self.navigationController!.pushViewController(self.conversationListViewController, animated: true)
      }
}

但这不起作用。并且产生这种效果:ConversationViewController未加载UINavigationController。我不确定我是否以正确的方式这样做。我正在寻找正确的方法,但无法找到。

Screenshot

2 个答案:

答案 0 :(得分:4)

我解决了它。我拖了新NavigationViewController并将ConversationListViewController添加到rootviewController。我想我应该先尝试一下。无论如何,谢谢你们的帮助。enter image description here

答案 1 :(得分:1)

因为你想以编程方式执行此操作:

您需要先手动初始化控制器,然后再将其堆叠在导航控制器上。试试这个:

navigationController?.pushViewController(self.conversationListViewController。 init(),动画:true)