自动移动到父视图控制器

Posted

技术标签:

【中文标题】自动移动到父视图控制器【英文标题】:Automatically moving to parent view controller 【发布时间】:2015-10-15 20:29:14 【问题描述】:

我在我的应用程序中使用 mmdrawercontroller...当我从抽屉中选择一个 tableviewcell 时,我在导航控制器上推送 tableview A,然后在从 tableview A 中选择 tableviewcell 时,我在导航控制器上推送 tableview B... tableview B 出现,然后立即弹回 tableview A。

我在 tableview B 的 viewdidload 方法上进行了调试,导航控制器将 tableviewB 与 tableview A 和主视图一起推到了它上面...... tableview B 的所有 tableview 方法也被触发了......但后来不知何故 tableviewB 弹出并重新打开表视图 A... 这种奇怪行为的任何原因..?

注意

但是,当我以模态方式呈现自定义创建的 uinavigational 控制器时(通过以下代码 sn-p),它的行为正常......并且不会弹出......

 UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:tableviewB];

[self presentViewController:navigationController
                   animated:YES
                 completion:^
                    NSLog(@"presenting modally rather pushing"); 
                 ];

所以导航控制器肯定出了问题..

【问题讨论】:

【参考方案1】:

分享我用swift写的想法,如果你想从tableViewA推送tableViewB,在你的AppDelegate中:

self.window = UIWindow()    
let tvc = TableViewAController()
let nvc = UINavigationController(rootViewController: tvc)    
window.rootViewController = nvc
window.makeKeyAndVisible()

当你想在 tableViewA 中推送 tableViewB 时:

let nextVC = TableViewBController()
nvc.pushViewController(nextVC)

【讨论】:

以上是关于自动移动到父视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

不会从子视图控制器弹出到父视图

将 NSMutableArray 从模态视图控制器传递到父视图

如何将 nib 文件中的 UITableView 加载到父视图控制器中的容器视图中?

如何将子 ViewController 的视图添加到父 View 控制器的子视图中?

在 Cocoa,UIResponder 中将消息从子视图发送到父视图?

视图不显示和自动布局集中