从另一个 .storyboard 扩展 MyViewController
Posted
技术标签:
【中文标题】从另一个 .storyboard 扩展 MyViewController【英文标题】:Extending MyViewController from another .storyboard 【发布时间】:2015-12-11 09:44:51 【问题描述】:我尝试创建类似于 SDK 的东西 - 默认视图包,开发人员可以扩展和自定义的控制器
如果用户的视图不是以编程方式生成,而是在单独的 .storyboard 中创建,我无法理解用户如何扩展我的 UIViewController。
对于 UIView,我们做这样的事情
-(id)init
NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"myXib" owner:self options:nil];
return [subviewArray objectAtIndex:0];
UIViewController 如何从 .storyboard 获取自己的视图?
我不能使用 .xib 文件,因为我的 viewControllers 具有动态 TableViewCells 的 TableViews。
更新: 我认为以编程方式创建 UIViewController 很容易,添加 coupe 视图和所有 ChildViewControllers 将具有与他的 ParentViewController 相同的控件。 我不想以编程方式添加此控件,而是为此使用 .storyboard。我无法想象 - 如何绑定它。
【问题讨论】:
我猜你需要使用情节提要参考...这在 xcode 7 中可用 【参考方案1】:UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MyStoryboard" bundle:nil];
MyViewController * myVC = (MyViewController *)[storyboard instantiateViewControllerWithIdentifier:@"MyViewControllerIdentifier"];
【讨论】:
不,伊戈尔!关键字“扩展”、“获得自己的观点”。你的例子在我的例子中循环。我看解决方案“takeViews”而不是“实例化”。 好的,只需使用 myVC.view 。还是我还是没明白你的意思? 好的,在这种情况下,您可以尝试覆盖自定义 ViewController 中的 initWithCoder: 方法并从情节提要中初始化 vc 对象。当您的用户在他的故事板上添加 ViewController 时,将调用 initWithCoder: 并且从您的故事板初始化的自定义视图控制器将返回。【参考方案2】:使用您的库的人可以简单地将他的 ViewController 的类从情节提要中设置为您的 ViewController,如下所示:
【讨论】:
以上是关于从另一个 .storyboard 扩展 MyViewController的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 应用程序及其扩展程序之间共享 Storyboard
从另一个 ViewController 呈现故事板 ViewController