![](/img/trans.png)
[英]Make GoogleMap holds its position while using MMDrawerController
[英]Navigation Bar Items disappearing while using MMDrawerController
我使用MMDrawerController通过我的应用程序之一的各种视图导航哪个是哪个了5点链接到它的每一个5个栏项目的进一步意见TabBarController。 这5个视图中的每一个都有附加的导航栏项目。 这5个视图中的每个视图上的左侧条Item都将切换LeftViewController (用作抽屉的视图)。 我在AppDelegate中使用此代码来实现此目的
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
var centerViewController = mainStoryboard.instantiateViewControllerWithIdentifier("TabBarController") as! TabBarController
var leftViewController = mainStoryboard.instantiateViewControllerWithIdentifier("LeftViewController") as! LeftViewController
var leftsideNav = UINavigationController(rootViewController: leftViewController)
var centerNav = UINavigationController(rootViewController: centerViewController)
centerContainer = MMDrawerController(centerViewController: centerViewController, leftDrawerViewController: leftViewController)
centerContainer!.closeDrawerGestureModeMask = MMCloseDrawerGestureMode.PanningCenterView
当在5个ViewController上点击左栏按钮时,我正在调用此方法
@IBAction func leftButtonTapped(sender: AnyObject) {
var appDelegate:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDelegate.centerContainer!.toggleDrawerSide(MMDrawerSide.Left, animated: true, completion: nil)
}
到目前为止效果很好。
现在,我有我的LeftViewController一个的tableView中,我希望实现以下行为-在第一行可前往[我们的TabBarController点击,而第二行把我们带到另一个视图控制器 ,并与withFullCloseAnimation
设置为true
。
这是LeftViewController的tableView的didSelectRowAtIndexPath
方法中的代码
var appDelegate:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
var centerViewController = mainStoryboard.instantiateViewControllerWithIdentifier("TabBarController") as! TabBarController
var centerNav = UINavigationController(rootViewController: centerViewController)
appDelegate.centerContainer?.setCenterViewController(centerNav, withFullCloseAnimation: true, completion: nil)
appDelegate.centerContainer!.toggleDrawerSide(MMDrawerSide.Left, animated: true, completion: nil)
break;
这使得TabBarController中5个视图的导航栏项目消失。 如果我使用它,效果很好-
var appDelegate:AppDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDelegate.centerContainer!.toggleDrawerSide(MMDrawerSide.Left, animated: true, completion: nil)
break;
最后的代码使我觉得它是在重新启动TabBarController ,而不是“恢复”已经初始化的代码。 是这样吗?
什么是实现此目标的正确方法?
很抱歉问题的长度(只需输入此字符即可进一步增加)
我添加了.navigationController
在didSelectRowAtIndexPath indexPath:NSIndexPath)中
appDelegate.centerContainer!.centerViewController centerViewController.navigationController
break;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.