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

3
我想在我的应用程序(使用Swift)中添加Layer SDK
这里所有的视图控制器都是通过编程方式创建的。因此,我无法进行转场。我的应用程序有4个选项卡(UITabBarController),其中一个是聊天。在聊天选项卡中,我创建了一个转场到UINavigationController。现在我想在这个UINavigationController中加载conversationListViewController。为此,我创建了一个类来代表这个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)
      }
}

但是这并没有起作用。并且产生了这样的效果:在UINavigationController中未加载ConversationViewController。我不确定自己是否做得正确。我正在寻找正确的方法,但是找不到。

Screenshot


很简单,只需在StoryBoard中创建您的视图控制器并将其嵌入UINavigationController中,为您的导航控制器设置标识符,然后将您的根视图控制器设置为[[YourNavigationController viewControllers]firstObject]。 - Mo Farhand
2个回答

4
我解决了。我拖动了一个新的NavigationViewController并将ConversationListViewController添加到rootViewController中。我认为我应该首先尝试这个。无论如何,谢谢大家的帮助。enter image description here

1
因为您想通过编程的方式实现此操作:
在将控制器堆叠到导航控制器上之前,您需要手动初始化控制器。请尝试以下操作:
navigationController?.pushViewController(self.conversationListViewController.init(), animated: true)

var tempVC = ChatFriendsVC() self.navigationController!.pushViewController(tempVC.dynamicType.init(), animated: true)。尝试了这个但是没有得到输出。 - Nishant Dongare
重写函数 tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { tableView.deselectRowAtIndexPath(indexPath, animated: true) let vc = self.conversationListViewController.init() navigationController?.pushViewController(vc, animated: true) } - Nisarg Shah
但是这不是扩展 TableViewController - Nishant Dongare
你在快照中放置的控制器是什么?那不应该是一个TableViewController吗? - Nisarg Shah
这些是我 TabBarController 中的额外菜单 :) - Nishant Dongare
一个TabBarController应该加载一个TableViewController,它初始化并加载ViewController。根据提供的信息,很难提出更多建议。 - Nisarg Shah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接