2012-07-22 25 views
0

我有一個對象,我想在兩個MVC之間延續。第一個MVC中的屬性是否與對象一起被捕獲,還是僅僅是方法? IE:如果我有一個值爲5的int屬性,然後執行傳遞對象的segue。我的新MVC是否可以訪問這個屬性和值5?還是隻能訪問傳入的對象方法?當你繼承對象時屬性是否被傳遞?

回答

0

屬性不會在segue中傳遞或設置在目標viewController上。如果你想讓你的目標viewController使用一個對象(一個類的實例)或一些簡單的變量,你必須在你的目的viewController類中定義該屬性,然後將其設置爲prepareForSegue:。例如,在下面的代碼位中,目標viewController具有一個屬性'sectionToShow'和該屬性的setter被調用。

另一種方法是爲目標viewController定義委託並以相同的方式進行設置。然後,目標viewController可以調用方法並訪問委託的屬性。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 

    NSString* identifier = segue.identifier; 

    if([identifier isEqualToString:@"userGuideSegue_home"]){ 
     UserGuideViewController* vc = segue.destinationViewController; 
     [vc setSectonToShow:@"Home Screen"]; 
    } 
} 
0

不幸的是,物業並不神奇地通過自己的節點(還)。

你應該做的是在視圖控制器中覆蓋prepareForSegue:sender:。然後您可以使用[segue destinationViewController]訪問目標視圖控制器。一旦你有了對視圖控制器的引用,你可以設置它的屬性。