侧边菜单隐藏问题

时间:2017-01-17 12:12:55

标签: ios objective-c

我有一个表视图作为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)!)

2 个答案:

答案 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)