解雇我使用root呈现它的ViewC控制器

时间:2016-08-01 14:32:54

标签: ios swift xcode

如何解雇我使用此方法调用它的视图控制器

func openUpgradeAccount(){

    let appdel = AppDelegate.sharedInstance()

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let earnFreeSpace = storyboard.instantiateViewControllerWithIdentifier("IAPUpgradeVC") as! IAPUpgradeVC

    let navigation:UINavigationController = UINavigationController(rootViewController: earnFreeSpace)
    appdel.drawerController!.mainViewController = navigation
    appdel.drawerController!.setDrawerState(.Closed, animated: true)
}

在这个控制器中我添加UIBarButtonItem来取消id viewdidload方法

    let cancelBarBtn = UIBarButtonItem(title: NSLocalizedString("Cancel", tableName: appLocalizedTable, comment: ""), style: UIBarButtonItemStyle.Done, target: self, action: #selector(IAPUpgradeVC.didTapCancelButton(_:)))
    cancelBarBtn.tintColor = UIColor.whiteColor()
    self.navigationItem.leftBarButtonItem = cancelBarBtn

我用来解散视图的didTapCancelButton方法是

    func didTapCancelButton(sender: UIBarButtonItem) {
    self.dismissViewControllerAnimated(true) { () -> Void in

    }

但是当我点击取消按钮时没有任何事情发生,我想要怎样才能返回到最后一个ViewController,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

首先,什么是drawerController?什么是它的超类以及它的mainViewController应该是什么?

点击按钮时调用的方法是解除以模态方式显示的视图控制器。但是在此之前,您没有以模态方式呈现该视图控制器,而是设置为drawerController的mainViewController:

appdel.drawerController!.mainViewController = navigation

使其工作的一种方法是更改​​此行,以便不是设置mainViewController而是调用presentViewController以模态方式呈现新的视图控制器。

如果这不是你想要它的工作方式(没有视图控制器的演示),你必须详细说明你想要新的vc和drawerController做什么。