【问题标题】:Storyboard - Creating Multiple Views in storyboard for the same ViewControllerStoryboard - 在 Storyboard 中为同一个 ViewController 创建多个视图
【发布时间】:2012-03-10 12:38:29
【问题描述】:

我正在使用情节提要设计一个 iPad 应用程序。我有一个 ViewController 显示视图。我的问题是,当管理员看到该屏幕时,他应该看到某个视图,而当用户看到该屏幕时,他应该看到另一个视图。我想我应该为同一个屏幕创建两个视图,并根据谁记录它来加载适当的视图。然而,虽然我可以在早期 iOS 版本的 XIB 文件中执行此操作,但情节提要不允许我在 ViewController 之外创建视图,因此我无法设计多个视图。

我的问题是:

  1. 我们可以在故事板中为同一个ViewController 设计两个视图吗?如果是,那么如何?
  2. 我需要并排查看两个视图,以便分别对它们进行更改。将它们作为主视图的子视图将在运行时加载这两个视图。我希望能够根据登录者仅加载其中一个视图。

提前感谢您的帮助

【问题讨论】:

  • 好问题。我想知道你为什么没有回复。我很高兴知道答案。
  • 我也想知道!可惜答案似乎是否定的。
  • 这里回答了同样的问题:stackoverflow.com/questions/9498010/…

标签: ipad storyboard


【解决方案1】:

您可以在另一个故事板控制器中显示一个情节提要控制器的视图,但这很棘手。我在情节提要中有一个选项卡视图控制器,其中一个视图有一个导航栏,上面有一个分段控件,用于确定控制器中出现两个视图的哪个视图。我将其称为“主要”控制器。我所做的是在主视图内的“主”控制器上,我在导航栏和选项卡栏之间添加了另外两个视图,并将 IBOutlets 连接到它们。

@property (retain, nonatomic) IBOutlet UIView *leftView;
@property (retain, nonatomic) IBOutlet UIView *rightView;

当分段控件的左段被按下时,右视图被隐藏(setHidden:TRUE),左视图被取消隐藏。反之亦然。

为了在上述视图之一中显示来自另一个 ViewController 的视图,在“主要”视图控制器中,我为每个辅助 ViewController 创建了一个 IBOutlet

@property (retain, nonatomic) IBOutlet CustomViewController1 *leftViewController;
@property (retain, nonatomic) IBOutlet CustomViewController2 *rightViewController;

辅助视图控制器的布局必须在导航栏、状态栏和标签栏项目的外观方面与“主”控制器相匹配

然后我不得不在“主”视图控制器上的 ViewDidLoad 中手动从情节提要中实例化它们。

self.leftViewController = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"CustomViewControllerOne"];
self.rightViewController = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"CustomViewControllerTwo"];

其中“CustomViewControllerOne”和“CustomViewControllerTwo”是故事板中控制器的“标识符”字段值,我必须输入。

再次在“主”控制器上的 ViewDidLoad 中,我将控制器视图添加为基于段控件隐藏和取消隐藏的子视图

[self.leftView addSubview:leftViewController.view];
[self.rightView addSubview:rightViewController.view];

我发现如果我尝试将它们添加为主视图的子视图而不创建两个视图容器(leftView 和 rightView),辅助视图控制器会在“主”控制器中出现偏移。

所以当用户按下左段时,来自 CustomViewController1 的视图出现,当他们按下右段时,来自 CustomViewController2 的视图出现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 2012-10-21
    • 1970-01-01
    • 2012-03-20
    • 1970-01-01
    • 2021-01-31
    相关资源
    最近更新 更多