2014-02-21 26 views
0

我想知道哪些是在viewControllers之間發送參數的最佳方式。我知道有兩種可能性,在init調用之後傳遞公共屬性中的參數。自定義初始化或公共屬性什麼是viewControllers之間發送參數的最佳方式

ViewController *vc = [ViewController alloc] init]; 
vc.propertyOne = @"whatever"; 
vc.propertyTwo = @"whatever2"; 

或創建新的自定義的init像

initWithProperty:(NSString *)prperty1 andPropertyTwo:(NSString *)property2 
{ 
    self = [super init]; 
    if (self) { 
     self.propertyOne = prperty1; 
     self.propertyTwo = property2; 
    } 
    return self; 

} 

ViewController *vc = [[ViewController alloc] initWithProperty:@"whatever andPropertyTwo:@"xxxx"]; 

我想知道每個人的優點和缺點,「何時」和「爲什麼」是更好地利用其中的一個。

+0

[視圖控制器之間傳遞數據]的可能的重複(http://stackoverflow.com/questions/5210535/passing-data-between-view-controllers) – RaffAl

回答

4

如果在執行init方法時立即需要這些值,則應將參數傳遞給自定義方法init

如果您有幾個屬性需要設置,並且這些屬性在init方法本身中不需要,您應該使用在調用alloc/init之後立即設置的屬性。

很多時候屬性不需要,直到viewDidLoad(在視圖控制器的情況下),所以使用屬性更清潔。你不想用一打參數結束init方法。

+0

謝謝。我看到了兩種方式,但我不明白爲什麼。現在我懂了。 – croigsalvador

相關問題