【问题标题】:Using one ViewController for multiple scenes使用一个 ViewController 处理多个场景
【发布时间】:2012-07-02 02:40:09
【问题描述】:

我想为多个场景使用同一个 ViewController。现在我想根据使用的场景实现稍微不同的行为。我想这可以使用标识符。喜欢(伪代码)

if (self.identifier == scene1)
{
    // do this
}
else if (self.identifier == scene2)
{
    // do that
}

如何从 ViewController 调用标识符?

编辑:

我的意思是来自 Inpector 的这个标识符 - 我如何在代码中调用它?

提前致谢。

【问题讨论】:

    标签: iphone ios uiviewcontroller storyboard uistoryboard


    【解决方案1】:

    我修好了。一种可能的方法是命名 Segway 标识符,然后在 prepareForSegue 方法中检查相等的字符串。

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
        if ([segue.identifier isEqualToString:@"HelpSegue"])
        {
            // do this
        }
        else
        {
            // do that
        }
    

    }

    【讨论】:

      【解决方案2】:

      我认为这里正确的设计应该是使用枚举值,比如:

      typedef enum{
          kViewControllerStyle1,
          kViewControllerStyle2,
          kViewControllerStyle3
      } ViewControllerStyle;
      

      通过界面构建​​器插座连接所有需要适应此样式的视图元素,并在“viewDidLoad”方法中添加一个开关盒以根据当前视图控制器样式进行正确调整(还添加一个“ ViewControllerStyle" 属性添加到您的视图控制器类)。

      【讨论】:

      • 好的,但是我从哪里得到标识符呢? UIViewController 没有标识符属性(我已经编辑了我的问题)
      • 不要混淆这两件事——我的意思是创建你自己的“类型”属性,你不需要使用“标识符”。
      • 很清楚。但是如何将 ViewControllerStyle 设置为正确的值?
      • 当你实例化视图控制器时。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      相关资源
      最近更新 更多