0
我有一個UINavigationController,我用它將UIViewControllers推到使用pushViewController:animated:
。在此之後,我在該傳入視圖上調用一個方法來設置其一些IB插座。不幸的是,當我爲視圖添加動畫時,這些只會被設置。當我推動一個UIViewController沒有動畫時,無法設置插座
那麼這將工作:
MyViewController *newView = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[self.navigationController pushViewController:newView animated:YES];
[newView updateOutletsForObject:myObject];
但這不會:
MyViewController *newView = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[self.navigationController pushViewController:newView animated:NO];
[newView updateOutletsForObject:myObject];
有誰知道爲什麼會發生?提前致謝。
嗨馬克。更新'-viewDidLoad'中的出口確實可行,但在我嘗試運行'-updateOutletsForObject:'方法之前,不會調用-viewDidLoad? – Ricky 2011-04-12 03:45:42
是的,但那不是重點。封裝是關鍵。這樣做會使每個控制器僅對其實際控制的視圖負責。將此工作移至'-viewDidLoad'可以減少兩個控制器之間的耦合。 – 2011-04-12 04:34:06