2011-12-30 59 views
0

我正在嘗試複製數組,我必須以編程方式創建新視圖。我實際上已經找到了如何用正常的導航控制器語法來做到這一點我的問題是我使用新的故事板,我不知道做同樣的事情的語法。這裏是我的代碼有..以編程方式將數組複製到故事板中的新視圖

CustomerListViewController *second = [[CustomerListViewController alloc] initWithNibName:@"CustomerListViewController" bundle: nil]; 
[second setValue:customerList.list]; 
// [self.navigationController pushViewController:second animated:YES]; 
[self performSegueWithIdentifier:@"LoginSegue" sender:self]; 

,你可以看到,我編程方式創建第二個視圖控制器和存儲本地陣列customerList.List所創建的視圖控制器的數組變量。下一步是打開新創建的視圖。註釋掉的行是在導航控制器下打開視圖的語法。下面的行是故事板的方式,但減去指定我創建的視圖。我需要知道故事板的語法與導航控制器執行相同的操作。

感謝

回答

3

它沒有任何意義,如果你正在使用塞格斯在這裏創建自己的CustomerListViewController實例。 segue本身將從故事板創建視圖控制器,並且您在此處創建的實例將不會執行任何操作。

相反,只需在這裏撥打performSegueWithIdentifier:sender:即可。然後實現prepareForSegue:sender:方法是這樣的:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([segue.identifier isEqualToString:@"LoginSegue"]) { 
     CustomerListViewController *destinationController = (CustomerListViewController *)segue.destinationViewController; 
     [destinationController setValue:customerList.list]; 
    } 
} 
+0

對不起,我應該提到。我需要以編程方式調用SEGUE在特定的時間,因爲新的視圖按鈕按下叫,但我要打開一個連接,並做一些處理和計算。如果我不以編程方式調用它,那麼視圖將在任何計算完成之前打開,並且在創建視圖時我的數組爲空。 *編輯*沒關係,我明白你在說什麼。我會試試這個。 – 2011-12-30 15:03:23

+0

沒問題。正如我所說的,當你需要啓動segue時,只需調用'performSegueWithIdentifier:sender:'。 – 2011-12-30 15:05:25

+0

嗯,我試過了,首先,您發佈的代碼會導致customerList.list上的錯誤,表示customerList未定義(它在第二個視圖控制器中)。我改變它只是列表(在第二個視圖控制器中的數組的名稱),但它的空和沒有傳遞。有了這種風格,我想我沒有看到第一個視圖控制器的數組傳遞到第二個... – 2011-12-30 15:12:41

相關問題