簡體   English   中英

盡管調用了viewDidLoad,但未出現iOS ViewController

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM