2012-10-22 52 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]'。 –