【问题标题】:Errors when try to InstantiateViewController after button click单击按钮后尝试 InstantiateViewController 时出错
【发布时间】:2017-03-20 12:57:53
【问题描述】:

我是使用 Visual Studio 2015 进行 Xamarin iOS 开发的初学者,我发现了我的第一个疑问/问题。

当我尝试在单击按钮后加载嵌入到 NavigationController 中的 TabController 时,我得到一个黑屏,底部有白色标签栏(没有图像或任何配置显示)。

这是我的故事板(它有 NavigationController -> TabBarController -> 4 个 ViewController(HomeController、SearchController、MoreController、SettingController)):

所有组件都有 StoryBoard ID。

在以前的控制器中,我的 PushViewController 代码是这样的:

WorkspaceNavigationController controller = Storyboard.InstantiateViewController("WorkspaceNavigationController") as WorkspaceNavigationController;
if (controller != null)
{
    controller.PushViewController(controller, true);
}

但我遇到了黑屏:S。在我的输出窗口中,我可以看到与视图控制器相关的“错误”:“接口生成器文件中的未知类 HomeController”,其他的也一样。

编辑:好的,显示黑屏是因为我的 WorkspaceNavigationController 是从 UIViewController 继承的。现在,从 UINavigationController 继承,我收到此错误:“不支持推送导航控制器”

我认为我不能将 PushViewController 与 NavigationController 一起使用,但我尝试对 TabBarController 做同样的事情,代码如下:

TabBarController controller = Storyboard.InstantiateViewController("TabBarController") as TabBarController;
if (controller != null)
{
    controller.NavigationController.PushViewController(controller, true);
}

错误是另一个:“这个类不符合键 HomeController 的键值编码。”

编辑:我用获得的控制器更改了 NavigationController 的调用,但它似乎没有 NavigationController,因为它具有空值

真的,我不明白我怎么能展示这个。而且我不理解它的行为(因为(导航和 TabBar 控制器)都继承了 UIViewController)。您能给我一个解决方案以及如何理解吗?

提前致谢!

【问题讨论】:

    标签: ios xamarin xamarin.ios


    【解决方案1】:

    对我来说正确的方法是

    self.tabBarController?.selectedViewController?.navigationController?.pushViewController(yourController, animated: true)
    

    您的selectedViewController 实际上是UINavigationViewController

    【讨论】:

      【解决方案2】:

      第一个问题:关注这个

      1. 确保您拥有 WorkspaceNavigationController 类文件。
      2. 选择NavigationController 的情节提要文件,并确保选择黄色(情节提要文件上部三个图标的左侧)
      3. 然后确保您已将正确的类文件引入该 NavigationController 视图。

      我添加了图片以便更好地理解。

      【讨论】:

      • 嗨!提前感谢您的快速答复!我正在研究 VS 2015,我在属性 -> 小部件 -> 标识 -> 类中选择了类。我的解决方案资源管理器中有一个 WorkspaceNavigationController.cs 类
      猜你喜欢
      • 2017-06-25
      • 2022-09-27
      • 2015-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-05
      • 2019-02-24
      • 2016-01-19
      相关资源
      最近更新 更多