视图push和presentViewController注意点

presentViewController:

- (void)publishClick{
    
    NSLog(@"发布按钮被点击");
    PublishViewController *publishVc = [[PublishViewController alloc]init];
// 包装创建导航控制器 MainNavigationController *nav = [[MainNavigationController alloc]initWithRootViewController:publishVc]; // 这里不能使用self来弹出其他控制器, 因为self执行了dismiss操作 UIViewController *root = [UIApplication sharedApplication].keyWindow.rootViewController; [root presentViewController:nav animated:YES completion:nil]; }

 

pushViewController:

 // 在视图中push,需要取到导航控制器

// 先取得TabBarViewController UITabBarController *tabBarVc = (UITabBarController *)[UIApplication sharedApplication].keyWindow.rootViewController;
// 再取得导航控制器
// 以下一条语句:This may return the "More" navigation controller if it exists.
    UINavigationController *nav = (UINavigationController *)tabBarVc.selectedViewController; 

[nav pushViewController:webVc animated:YES];

  

posted on 2016-08-02 11:19  玉思盈蝶  阅读(1568)  评论(0编辑  收藏  举报

导航