我在執行我的應用程序時遇到以下問題。 我有一個選項卡式應用程序,並單擊每個可以訪問相應視圖的選項卡:例如,單擊tab2打開view2。但我可以訪問通過點擊上,其由作爲廠景的按鈕也視圖2如下:通過Tabs或Segges訪問視圖時的不同行爲
...
[buttonToView2 addTarget:self action:@selector(gotoView2) forControlEvents:UIControlEventTouchUpInside];
...
其中:
- (void)gotoView2
{
//execute segue programmatically
[self performSegueWithIdentifier: @"View2Segue" sender: self];
}
視圖2具有的表中顯示填充了數據陣列的數據從互聯網(在viewDidAppear
方法)。 因此,選擇tab2或單擊該按鈕都會使用戶到達目標視圖2。
這工作,但在這兩種情況下不同的行爲:
- 如果我點擊選項卡上,該表已經填充數據,而應用程序從互聯網
- 檢索信息。如果我點擊按鈕和我執行segue,表是空的,而應用程序從互聯網檢索信息
爲什麼?也許是因爲按鈕調用的選擇器是在不同的線程上執行的? 有什麼想法嗎?
問候, yassa
確保您已正確實施' - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender' for your seque(請參閱有幫助的帖子?:http://stackoverflow.com/questions/8680453/programatically -copy-array-to-new-view-in-storyboard) – petert 2012-01-03 16:23:18
在這種情況下,我沒有實現'prepareForSegue',因爲我沒有信息必須傳遞到目標視圖2 ... 我會試着更好地解釋。我有:@interface View2:UIViewController NSArray * arrayView2; UIImage * profileImage; ....' 如果我第二次通過選項卡訪問此視圖,則會填充所有這些變量。如果我通過Segue以編程方式訪問,他們是nul。 – yassassin 2012-01-04 08:14:14