gpt4 book ai didi

ipad - Storyboard - 在 Storyboard中为同一个 ViewController 创建多个 View

转载 作者:行者123 更新时间:2023-12-03 22:42:06 24 4
gpt4 key购买 nike

我正在使用 Storyboard设计 iPad 应用程序。我有一个 ViewController显示 View 。我的问题是,当管理员看到该屏幕时,他应该看到某个 View ,而当用户看到该屏幕时,他应该看到另一个 View 。我想我应该为同一个屏幕创建两个 View ,并根据记录它的人加载适当的 View 。但是,虽然我可以在 XIB 中做到这一点以前的 iOS 版本中的文件, Storyboard不允许我在 ViewController 之外创建 View 所以我不能设计多个 View 。

我的问题是:

  • 我们可以在 Storyboard中为同一个 ViewController 设计两个 View 吗? ?如果是,那么如何?
  • 我需要并排查看两个 View ,以便我可以分别对它们进行更改。将它们作为主 View 的 subview 将在运行时加载这两个 View 。我希望能够根据登录的用户仅加载一个 View 。

  • 在此先感谢您的帮助

    最佳答案

    您可以在另一个 Storyboard Controller 中显示一个 View ,但这很棘手。我在 Storyboard 中有一个选项卡 View Controller ,其中一个 View 有一个导航栏,上面有一个分段控件,用于确定 Controller 中出现两个 View 的哪个 View 。我将其称为“主要” Controller 。我所做的是在主 View 内的“主要” Controller 上,我在彼此之上添加了两个 View ,它们适合导航栏和标签栏,并将 IBOutlets 连接到它们。

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

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

    为了在上述 View 之一中显示来自另一个 ViewController 的 View ,在“主要” View Controller 中,我为每个辅助 ViewController 创建了一个 IBOutlet
    @property (retain, nonatomic) IBOutlet CustomViewController1 *leftViewController;
    @property (retain, nonatomic) IBOutlet CustomViewController2 *rightViewController;

    辅助 View Controller 的布局必须在导航栏、状态栏和标签栏项目的外观方面与“主要” Controller 匹配

    然后我必须在“主要” View Controller 上的 ViewDidLoad 中手动从 Storyboard实例化它们。
    self.leftViewController = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"CustomViewControllerOne"];
    self.rightViewController = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil] instantiateViewControllerWithIdentifier:@"CustomViewControllerTwo"];

    其中“CustomViewControllerOne”和“CustomViewControllerTwo”是 Storyboard中 Controller 的“标识符”字段值,我必须输入。

    再次在“主要” Controller 的 ViewDidLoad 中,我添加了 Controller View 作为我基于段控件隐藏和取消隐藏的 View 的 subview
    [self.leftView addSubview:leftViewController.view];
    [self.rightView addSubview:rightViewController.view];

    我发现如果我尝试将它们添加为主 View 的 subview 而不创建两个 View 容器(leftView 和 rightView),则辅助 View Controller 在“主” Controller 中出现偏移。

    因此,当用户按下左侧部分时,会出现来自 CustomViewController1 的 View ,而当他们按下右侧部分时,会出现来自 CustomViewController2 的 View 。

    关于ipad - Storyboard - 在 Storyboard中为同一个 ViewController 创建多个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9356608/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com