![](/img/trans.png)
[英]UIScrollView doesn't respond to scrollRectToVisible:animated: called from ViewDidLoad in iOS 5
[英]iOS ViewController doesn't appears although viewDidLoad gets called
我正在構建具有不同狀態的應用程序,如果用戶出於某種原因退出該應用程序,則需要恢復該狀態。 這意味着,啟動應用程序時,不同的屏幕/視圖控制器需要位於導航堆棧的頂部。 為此,我嘗試以編程方式構建視圖控制器,請參見下文:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
switch (appState)
{
case CSAppStateIdle:
{
//replace and push rootview manually
MainVC* mainView = [storyboard instantiateViewControllerWithIdentifier:@"MainVC"];
[(UINavigationController *)self.window.rootViewController pushViewController:mainView animated:YES];
}
break;
case CSAppStateSomeState:
{
MainVC* mainView = [storyboard instantiateViewControllerWithIdentifier:@"MainVC"];
SomeVC* someView = [storyboard instantiateViewControllerWithIdentifier:@"SomeVC"];
[(UINavigationController *)self.window.rootViewController addChildViewController:mainView];
[(UINavigationController *)self.window.rootViewController pushViewController:someView animated:YES];
}
break;
default:
break;
}
我使用ID正確設置的滑板。 在CSAppStateIdle中它可以正常工作,但是在CSAppStateSomeState中,someView不會出現在屏幕上,但是在someVC中,viewDidLoad,viewWillAppear甚至viewDidAppear都會被調用。
有人遇到過這個問題,還是知道解決方案? 感謝您的幫助,謝謝!
要將兩個項目都放置在導航堆棧中,請使用setViewControllers:animated:
方法,並同時傳遞一個包含兩個項目的數組:
case CSAppStateSomeState:
{
MainVC* mainView = [storyboard instantiateViewControllerWithIdentifier:@"MainVC"];
SomeVC* someView = [storyboard instantiateViewControllerWithIdentifier:@"SomeVC"];
[(UINavigationController *)self.window.rootViewController setViewControllers:@[mainView, someView] animated:YES];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.