当前位置: 首页 > 知识库问答 >
问题:

在故事板中的方向容器视图不加载segue目标视图控制器

严兴言
2023-03-14

我有一个需要在景观和肖像视图中呈现的视图。我使用这个解决方案来提供方向:故事板中方向的解决方案

所选视图是ViewController的视图,它有两个视图:第一个是纵向视图,第二个是横向视图。我隐藏了不符合设备方向的视图。

与图像中一样,视图、纵向视图和横向视图都有容器视图,通过segue链接到视图控制器。据我所知,故事板应该在加载主视图控制器时调用所有分段。我在prepareforsgue方法中得到Segue调用。

如果肖像视图被保留在横向视图之前,preareForSegue首先被调用用于"肖像视图"中的segue,在那里我将目标视图控制器保存在对象中。但是当调用Landscape视图segue时,Portrait Segue的目标viewController变为nil(保存在全局对象中)。

为什么会发生这种情况,以及如何解决这一问题,以便正确加载所有容器视图。

编辑

为segue方法做准备:-(空)准备ForSegue:(UIStoryboardSegue*)segue发送者:(id)发送者{NSString*segueName=segue.identifier;

if ([segueName isEqualToString: @"ChartEmbedSegue"])
{
   self.chartViewController = (ChartViewController *) [segue destinationViewController];
   self.chartViewController.dataSource = [[ServiceManager sharedInstance] dataSource];
   self.chartViewController.view.frame = self.chartContainerView.bounds;
}
else if ([segueName isEqualToString: @"LandscapeChartEmbedSegue"])
{
    self.landscapeChartViewController = (ChartViewController *) [segue destinationViewController];
    self.landscapeChartViewController.dataSource = [[ServiceManager sharedInstance] dataSource];
    self.landscapeChartViewController.view.frame = self.chartContainerView.bounds;
}
else if ([segueName isEqualToString: @"SummaryControllerEmbedSegue"])
{
   self.summaryViewController = (SummaryViewController *) [segue destinationViewController];
   self.summaryViewController.data = self.data;
   self.summaryViewController.view.frame = self.summaryView.bounds;
}
else if ([segueName isEqualToString: @"LandscapeSummaryControllerEmbedSegue"])
{
   self.landscapeSummaryViewController = (SummaryViewController *) [segue destinationViewController];
   self.landscapeSummaryViewController.data = self.data;
   self.landscapeSummaryViewController.view.frame = self.landscapeSummaryView.bounds;
}
}

共有1个答案

颜宸
2023-03-14

哎呀。。我的坏消息是,在发布这个问题后,我意识到,我没有设置一个重要的属性,因此没有数据

有时候,只要重新思考问题就能解决问题。

主持人:我应该把问题去掉吗?

@MartinKoles感谢您的支持。

 类似资料:
  • 我最近从故事板转换到XIB。因为我有大量的视图,而且在git存储库上使用XIB更容易。(此外,该应用程序现在将可用于iOS4)。 下面是我以前拥有的代码,但我想知道如果没有故事板,但使用XIBs,我将如何实现同样的功能:

  • 我被一个问题困住了,我在官方留档、Stackoverflow或谷歌上找不到答案。 我是一名经验丰富的iOS开发人员,但不熟悉故事板。我想在当前viewcontroller上实例化一个视图,在NIB中,我将在viewcontroller外部绘制一个视图,并附加一个出口以在代码中引用它,并调用addSubview:之类的东西。在MapView委托中绘制覆盖图或详图索引视图非常有用。但我不知道如何在故事

  • 我已经通读了《iOS View Controller编程指南》和《iOS View编程指南》,如果代码或情节提要中没有大量复制,我无法找到执行以下操作的最佳方法。 我正在为我的孩子们编写一个简单的数学教程程序,其中有一个带有数字“NumberPad”(数字0-9)的视图,以及一些动画的场景。 到目前为止,我有一个视图控制器,它处理简单的加减乘除问题,工作良好。 我想为一个视图控制器使用相同的数字键

  • 我将我的项目分为两个故事板: > -用于经过身份验证的用户。这也是默认的故事板。 -适用于未经身份验证的用户。 应用程序代理文件: 应用委托文件中的登录屏幕: 注销时,会显示登录屏幕。我在应用委托文件中定义了这个: 从MainstryBoard的viewcontroller(比如MainstryBoardVC.m)中,注销被称为: 这引起了很多问题: > 首先,当我注销并移动到登录屏幕时,我仍然可

  • 我一直试图以iPad仪表板的方式实现两个简单容器并排的视图布局。 我已经阅读了很多例子,当然还有苹果的视图控制器参考,但是我有一个非常奇怪的问题,希望能有一个简单的解释。 我已经并排添加了两个视图容器,每个容器将容纳一个具有不同背景颜色的viewcontroller、一个圆形Rect按钮和一个标签。出于测试目的,我还在“mainViewController”中添加了一个圆形Rect按钮。 所以非常

  • 问题内容: 我没有找到有关此问题的文章,但没有一个解决我的问题。 就像我说的那样。 ViewControllerA ViewControllerB 我试图将添加为的子视图,但是它 抛出类似“ ” 的错误。 下面是代码… ViewControllerA ViewControllerB只是一个带有标签的简单屏幕。 ViewControllerB EDIT 根据用户答案的​​建议解决方案,ViewCon