将一个ViewController用于多个场景

时间:2012-07-01 09:20:29

标签: iphone ios uiviewcontroller storyboard uistoryboard

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

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

如何从ViewController中调用标识符?

编辑:

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

enter image description here

提前致谢。

2 个答案:

答案 0 :(得分:2)

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

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

}

enter image description here

答案 1 :(得分:0)

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

typedef enum{
    kViewControllerStyle1,
    kViewControllerStyle2,
    kViewControllerStyle3
} ViewControllerStyle;

通过界面构建​​器插座连接所有需要适应此样式的视图元素,并在“viewDidLoad”方法中添加一个switch-case以进行正确调整,依赖于当前视图控制器样式(还添加“ ViewControllerStyle“视图控制器类的属性”。