首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Xamarin.iOS中加载共享库项目中存在的第二个故事板

如何在Xamarin.iOS中加载共享库项目中存在的第二个故事板
EN

Stack Overflow用户
提问于 2017-05-05 13:18:56
回答 1查看 471关注 0票数 2

我有一个Xamarin.iOS解决方案,它有两个项目。第一个是主要的iOS应用程序项目,第二个是Xamarin.iOS库项目。我在每个项目中都有一个情节提要,在iOS项目中,故事板与单个视图控制器很简单,其工作是初始化视图控制器并从库项目加载情节提要。

这背后的原因是,我们想要创建我们的应用程序的副本,为一个特定的客户品牌。因此,主应用程序逻辑将在库项目中,主iOS应用程序包含客户端品牌应用程序的所有样式。

我在做这件事时取得了轻微的成功。我能够通过在第一个故事板的ViewDidAppear方法中调用它来加载第二个故事板。

代码语言:javascript
复制
var sb = UIStoryboard.FromName("Storyboard", null);
var ctlr = sb.InstantiateInitialViewController();

this.PresentViewController(ctlr, true, null);

当我试图为第二个故事板的UIViewController中的任何东西添加一个插座时,问题就出现了。我得到了以下错误:

代码语言:javascript
复制
Objective-C exception thrown.  Name: NSUnknownKeyException Reason: 
[<UIViewController 0x166d5120> setValue:forUndefinedKey:]: this class 
is not key value coding-compliant for the key SecondText.

SecondText是第二个故事板上UITextField出口的名称。

这可能不是实现我想要的目标的最佳方法,但当将一个出口添加到视图控制器时,我仍然很困惑为什么这个方法不能工作。

当第二个故事板在主iOS应用程序项目上时,这个问题不会发生。

如果有人能对此有所了解的话,我将不胜感激。我已经上传了我的测试项目在这里,如果你想看看。

https://github.com/kckc/testShareStoryboard

最后一个注意事项是,我注意到当第二个故事板在库项目中时,ViewDidLoad方法没有向视图控制器开火,这可能是造成这种情况的原因吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-05 15:07:36

而不是使用:

代码语言:javascript
复制
var ctlr = sb.InstantiateInitialViewController();

尝试按名称实例化第二个视图控制器:

代码语言:javascript
复制
UIStoryboard sb = UIStoryboard.FromName("Storyboard", null);

nameofsecondviewcontroller ctlr = sb.InstantiateViewController("nameofsecondviewcontroller") as nameofsecondviewcontroller;

PresentViewController(ctlr, true, null);

这应该使用第二个视图控制器的设计器来初始化视图的控件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43806026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档