【发布时间】:2017-03-09 04:29:16
【问题描述】:
我正在尝试在表单依赖服务中显示视图控制器。但是我一直黑屏。当我在 Xcode 中使用 Swift 但不使用 Xamarin 时,我可以让它工作。
控制器插座也没有加载。奇怪的是对vc.View 的更改确实出现了。就好像它正在创建一个空白视图,而不是实际从情节提要中加载。
我的代码如下:
var storyboard = UIStoryboard.FromName("StoryboardView", null);
var controller = storyboard.InstantiateViewController("StoryboardViewVC");
var window = UIApplication.SharedApplication.KeyWindow;
var vc = window.RootViewController;
while (vc.PresentedViewController != null)
{
vc = vc.PresentedViewController;
}
vc.PresentViewController(controller, true, null);
向LoadViewIfNeeded() 添加呼叫并不能解决问题。
我已经仔细检查了情节提要和控制器名称是否匹配,它们确实如此。我一直在寻找答案,但我发现的一切都围绕着不编写代码来从情节提要或 nib 加载控制器。
【问题讨论】:
-
您希望“StoryboardViewVC”成为您的 RootViewController 吗?如果是这样的话:window.RootViewController = controller。否则,while 循环的目标是什么?这让我感到不安。您是否尝试删除它?
-
@xleon 不,我想以模态方式呈现视图控制器。这样做需要一个控制器来呈现。由于这是通过依赖项服务从 Xamarin.Forms 调用的,而据我所知,Forms 不会公开 Page 使用的 VC,因此我必须自己动手并自己找到最合适的 VC,因此需要使用 while 循环。尽管如此,这并不能解释为什么
controller似乎在故事板出现之前就没有从情节提要中加载。
标签: ios xamarin xamarin.ios xamarin.forms