Bir uçtan bir görünüm denetleyicisi yüklediğimi ve sahnedeki alt görünümünden biriyle bir şeyler yapmaya karar verdiğimi varsayardım. Daha sonraki bir zamanda, bu görüş denetleyicisinin görünümünü gösteririm.Bir görünüm oluşturma (initWithNibName öğesinden başlatıldı) tüm alt görünümünü yükle
viewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
[viewController.someSubview doSomething];
//later on
[mainView addSubview:viewController.view];
sorun görünüşüdür görünene kadar someSubview nesne yüklenecek görünmüyor, yani, bu yöntem doSomething denir. Şimdiye kadar benim geçici çözüm aramaktır:
[mainView addSubview:viewController.view];
[viewController.view removeFromSuperview];
ilk viewcontroller ait subviews başlatmak için. Bu görev için daha zarif bir yol var mı (bir loadSubviews yöntemi veya bir şey gibi)? Her şeyden
Teşekkür kullanmak
-(void) loadViewIfNeeded
tanıtıldı. – iamj4de@MarkAmery Apple, dokümantasyonda -loadView'u çağırmamanızı açıkça söyler: "Bu yöntemi doğrudan doğrudan çağırmamalısınız. Görüntüleme denetleyicisi, görünüm özelliği istendiğinde ancak şu anda sıfır olduğunda bu yöntemi çağırır. Bu yöntem, bir görünüm yükler veya oluşturur ve onu görünüm özelliğine atar. " –
@MikeWeller İyi bir nokta - Bunu bilmek için belgelere yakından bakmamıştım. Sanırım iki hafif çirkin hackden birini seçmek zorundayız o zaman. Benim açımdan, muhtemelen daha açık olduğu için loadView'a yapışacağım, ama düşündüğüm temiz çözüm olmadığını kabul ediyorum. –