我有一个表视图作为ViewController xib的侧面菜单,必须通过单击特定的菜单按钮添加为子视图。侧面菜单底部有一个注销按钮。我想执行popToRootViewController
点击徽标按钮。
我正在添加这样的菜单:
menuViewController?.view.frame = self.transparentView.frame
menuViewController?.didMove(toParentViewController: self)
menuViewController?.view.frame.size.width = (mapView.frame.size.width)/1.5
menuViewController?.view.tag=10
self.transparentView.addSubview((menuViewController?.view)!)
答案 0 :(得分:1)
如果您的应用程序中有单个导航控制器链,您可以轻松使用下面的代码在RootViewController上导航。
let appDelegate = UIApplication.shared.delegate as! AppDelegate
if let navigationController = appDelegate.window?.rootViewController as? UINavigationController {
navigationController.popToRootViewController(animated: true)
}
希望这会有所帮助。
答案 1 :(得分:1)
使用NotificationObserver实现此目标。
<强>目标C 强>
在mainViewController的viewDidLoad
方法中编写以下代码。
[[NSNotificationCentre defaulCentre] addObserver:self withName:"LoggoutNotificationMessage" selector:@selector(shouldLogout:) withObject:nil];
现在在此课程中添加此方法
-(void) shouldLogout {
//Code to Pop to Root VC
}
现在,在ViewController类中,您已经实现了侧面菜单的tableView委托和数据源。
在didSelectRowAtIndexPath:方法中写下行。
[[NSNotificationCentre defaultCentre] postNotification:"LoggoutNotificationMessage" withObject:nil]
Swift 3.0
//在主ViewController.swift的viewDidLoadMethod
NotificationCenter.default.addObserver(self, selector: #selector(shoudLogout), name: NSNotification.Name(rawValue: "LogoutNotificationMessage"), object: nil)
@objc func shoudLogout() {
//Pop to root vc here
}
现在,在ViewController类中,您已经实现了侧面菜单的tableView委托和数据源。
在didSelectRowAtIndexPath:方法中写下行。
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "LogoutNotificationMessage"), object: nil)