2014-07-07 41 views
0

我是iOS的新手,並且試圖找出可能很基本的東西。我有兩個UIViews,每頁有四個按鈕,每個按鈕下面有四個標籤。基本上,如果我按下視圖控制器1上的按鈕1,我希望視圖控制器2上的所有標籤都簡單地讀爲「1」。下面是一個更好的視覺圖像:在單獨的視圖控制器上編輯文本

enter image description here

現在,我在IB連接從按鈕1一個模式過渡到視圖控制器2,調用此方法:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ 
    if([segue.identifier isEqualToString:@"number1"]){ 
     ViewController2 *controller2 = [[ViewController2 alloc]init]; 
     controller2.label1.text = @"1"; 
      NSLog(@"Fired"); 
      NSLog(@"%@", controller2.label1.text); 
    } 
} 

它過渡很好,但不會更改標籤。 NSLogs顯示該方法會觸發,但標籤爲空。有人知道我需要改變嗎?

我宣佈我的ViewController2標籤,像這樣:

@interface ViewController2 : UIViewController { 
    UILabel *label1; 
} 

@property (strong, nonatomic) IBOutlet UILabel *label1; 

@end 

這裏是label1的連接檢查: enter image description here

回答

1

你正在創建您的視圖控制器的一個全新的實例。故事板爲您創建視圖控制器,並將其傳遞給您,以便在prepareForSegue:sender:方法中進行配置。你可以像這樣訪問:

ViewController2 *controller2 = (ViewController2 *)segue.destinationViewController; 
// configure controller2 here 

此外,當prepareForSegue:被稱爲視圖控制器上的網點沒有設置。您需要將NSString作爲第二個視圖控制器上的屬性。稍後,您可以使用viewDidLoad將標籤的文本設置爲您之前定義的NSString屬性所持有的值。

+0

謝謝。我將這一行更改爲您發佈的行,但它仍然沒有更改標籤。我不確定爲什麼,這很混亂。 – John

+0

您是否已將標籤正確連接到故事板中的「ViewController2」? – duci9y

+0

是的,我願意。另外,我編輯了我的OP,以顯示我如何聲明它,這可能是問題所在。 – John

相關問題