2014-02-18 101 views
0

我有一個關於數據管理的基本問題。如果我想使用VC1中的數據VC4,是否需要通過VC2VC3傳遞它們,即使它們不使用數據?將數據從VC1傳遞到VC4

我使用navigationController而現在我有以下情形:在VC4,我會做出webserver連接到根據VC1選擇哪些用戶獲取一些數據。

我聲明propertiesheader檔案VC2,VC3VC4

@property (strong, nonatomic) NSString *myString

現在,我通過這個@property使用prepareForSegue方法,因爲我使用storyboards。所以基本上,他們是這樣的VC1VC2VC3

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([segue.identifier isEqualToString:@"mySegue"]) { 
     NextVC *next = (NextVC*)segue.destinationViewController; 
     next.myString = self.myString; 
    } 
} 

現在,這個工程對我很好,我只是想確保這是良好的編程習慣,如果沒有更好的方法做這個。特別是當我們有很多數據時,因爲並不總是我們只傳遞簡單的NSStrings。我只關心將memory分配給我不使用的對象,不管大小。

回答

1

你的方法是正確的。

或者,你可以隨時使用你的UINavigationControllerviewControllers財產。

你可以通過調用訪問來自VC4VC1

UIViewController *vc1 = self.navigationController.viewControllers[0]; 

,然後訪問您所需要的VC1的數據。