簡體   English   中英

如何顯示ViewController,然后將其關閉以顯示UISplitViewController?

[英]How do I show a ViewController and then dismiss it to show a UISplitViewController?

iPad郵件應用程序中沒有帳戶設置時,它將打開郵件客戶端以供選擇? 選擇郵件客戶端后, UISplitViewController模態方式關閉視圖控制器,並顯示UISplitViewController

我想在iPad應用程序上工作,在該應用程序中,我必須先顯示ViewController然后將其關閉以顯示UISpiltViewController 我想知道它是如何完成的。

我只能吃午飯UISplitViewController首先將其設置為rootView控制器。 這是我的代碼

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.



    PopViewController * menuVC = [[PopViewController alloc] initWithStyle:UITableViewStyleGrouped];
    UINavigationController * navMenue = [[UINavigationController alloc] initWithRootViewController:menuVC];

    DetialViewController *delainVC =[[DetialViewController alloc] init];
    UINavigationController * navdetail = [[UINavigationController alloc] initWithRootViewController:delainVC];

    UISplitViewController *splitVC = [[UISplitViewController alloc] init];
    splitVC.viewControllers = [NSArray arrayWithObjects:navMenue,navdetail, nil];


    self.window.rootViewController = splitVC;
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
} 

我了解到,您必須始終將UISplitViewController設置為rootViewController。 但是我的目標是在UISplitViewController之前打開ViewController。 與沒有帳戶設置的iPad郵件應用程序完全一樣。

因為-(void)viewDidLoad在-(void)viewDidAppear:(BOOL)animated之前被調用。 同時在視圖中打開沒有動畫的模態視圖控制器時加載方法。 解決了問題。 而且沒有UISplitViewcontroller的一瞥。 下面是代碼。 這段代碼應該放在detailview控制器中。

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self checkLogIn];

}

編寫了一個函數來檢查用戶是否已經登錄

-(void) checkLogIn{

  if(notLoggedIn){
        ViewController * VC = [[ViewController alloc] init];
        [self presentViewController:VC animated:NO completion:nil];
   }

}

如果您從詳細視圖控制器的viewDidAppear方法呈現模態視圖控制器(不帶動畫),這將是您看到的第一件事。 例如,

-(void)viewDidAppear:(BOOL)animated {
    if (notLoggedIn) {
        UIViewController *modal = [self.storyboard instantiateViewControllerWithIdentifier:@"Blue"];
        [self presentViewController:modal animated:NO completion:nil];
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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