【问题标题】:View not loading from Storyboard on InstantiateViewController() call在 InstantiateViewController() 调用中视图未从 Storyboard 加载
【发布时间】: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


【解决方案1】:
var controller = (UIViewController)storyboard.InstantiateViewController("StoryboardViewVC");

使用您分配给视图的类,该类可能会加载您的视图。

【讨论】:

  • 你说的是转换即时图片方法的返回值吗?
猜你喜欢
  • 2013-07-25
  • 1970-01-01
  • 1970-01-01
  • 2018-09-13
  • 2018-10-29
  • 1970-01-01
  • 1970-01-01
  • 2014-07-11
  • 2012-05-26
相关资源
最近更新 更多