澄清这个荒谬的标题:
我正在使用我自己的JSQMessagesViewController(https://github.com/jessesquires/JSQMessagesViewController)的子类 - 让我们称之为ACMessagesViewController。我正在通过storyboard加载我的ACMessagesViewController,方法是将storyboard UIViewController的自定义类设置为ACMessagesViewController。我试图通过故事板向ACMessagesViewController的视图添加子视图。
JSQMessagesViewController从笔尖加载。当我通过故事板向ACMessagesViewController的视图添加子视图时,视图消失。子视图似乎是添加到我的ACMessagesViewController的self.view之外的视图,并且当viewdidload范围运行时,子视图已经消失。
我的问题是: 1.当UIViewController从nib加载时,将子视图(通过storyboard)添加到自定义类UIViewController的正确方法是什么? 2.此视图加载过程中发生了什么?为什么我的子视图(通过故事板添加)添加到我的ACMessagesViewController中与self.view不同的视图中?
提前致谢!
答案 0 :(得分:3)
我认为这是其中之一"如果你需要解决它,你可能做错了#34;您经常在iOS开发中遇到的场景。 :-)真的,如果你想要JSQMessagesViewController提供的功能,你就不需要添加额外的视图。但是如果你必须添加视图,那么"对"这样做的方法是将它们添加为在viewDidLoad中调用super之后的self.view的子视图。如果您不想以编程方式构建视图,可以将它们放在单独的笔尖(而不是故事板)中并手动加载它们。
(注意:假设调用了viewDidLoad。如果它不是,你可能需要挂钩到其他方法。)
答案 1 :(得分:-2)
我使用@ Anna的建议在viewDidLoad
中添加视图,但您不需要使用第二个Xib或在代码中设计视图。
你需要的是:
一个。在storyboard / xib文件中的JSQMessagesViewController
场景中设计视图。
B中。创建您需要呈现的视图的出口。
℃。在viewDidLoad
中使用view.addSubview(myView)
(或[self.view addSubview:self.myView]
添加您的视图,用于所有objc的视图)
d。那就是它!