2012-10-22 23 views
-1

我可以将视图的名称作为switch语句的参数吗?如果是的话,我会在交换机中使用什么?将故事板名称传递给switch语句?

[self addChildViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"View1"]]; 
[self addChildViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"View2"]]; 
[self addChildViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"View3"]]; 
[self addChildViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"View4"]]; 
[self addChildViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"View5"]]; 
[self addChildViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"View6"]]; 
[self addChildViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"View7"]]; 
[self addChildViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"View8"]]; 
[self addChildViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"View9"]]; 
[self addChildViewController:[self.storyboard instantiateViewControllerWithIdentifier:@"View10"]]; 

根据视图名称,我想在标签中显示不同的文本位。所以我想要一个开关,其中的情况是视图的名称我只是不知道如何返回视图的名称,所以我可以检查它们。

谢谢。

+0

如果你有名字_in一个string_已经,你并不需要一个开关。如果你想在运行时获得_variable_的标签,那么你可以为ivars做到这一点,但它几乎肯定是错误的方式。请详细说明你想要完成什么。 –

+0

编辑我的问题 – Lewis

回答

1

你不可错过的NSString目标C中的switch语句不会出现以下错误。

error: statement requires expression of integer type ('NSString *' invalid)

使用if语句来代替,并检查isEqualToString

+0

我如何获得视图的名称来检查? – Lewis

+0

它实际上并不是视图的名称,它是您在界面构建器中设置的segue的标识符。 [segue标识符]将从segue中获得名称。 –

+0

是的,它在ib中的故事板ID中定义。仍然不能返回 – Lewis

1

你可以切换一个NSNumber的的intValue(switch ([num intValue]) {)表示视图控制器的名称的数字部分,然后将其命名为像(假设“民”你的NSNumber先前设置的):

[self addChildViewController:[self.storyboard instantiateViewControllerWithIdentifier:[NSString stringWithFormat:@"View%d", num]]]; 
+0

您不能打开一个对象,只能是一个整数类型。 –

+0

嗯,我不记得说,例如,开关将与'[num intValue]'。 –