在我转到视图控制器的 child 并返回到上一个视图控制器后,SWRevealViewController 将无法工作
SWRevealViewController won't work after I go to the child of view controller and go back to the previous view controller
我正在使用 SWRevealViewController。我已经通过应用程序滑出主菜单完全实现了。但是,当我转到一个 VC,它有一个 child,我可以从那里返回时,previous/parent VC 的 self.revealViewController()
returns 为零。主菜单按钮不再起作用。我正在 Swift 编程。下图显示了 VCs 的导航。我有一个 UITableviewcontroller 项目和用于添加新项目的 + 按钮。点击 + 后,会出现新 VC 添加新项目。如果我点击取消按钮,会显示 VC 项目,但主菜单按钮不起作用,我无法打开主菜单。谁能帮我解决这个问题?感谢您的时间和帮助。
这是 class ProjectsView 的开头代码,我在其中为每个 VC 设置了 SWViewController。
class ProjectsView: UITableViewController {
@IBOutlet var mainMenuBttn: UIBarButtonItem!
var projects: [String] = ["Project1", "Project3", "Project3"];
override func viewDidLoad() {
super.viewDidLoad()
if self.revealViewController() != nil {
mainMenuBttn.target = self.revealViewController()
mainMenuBttn.action = "revealToggle:"
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
}
...
您不需要将新项目添加到您的初始导航控制器。为您的取消按钮创建一个 IBAction,例如:
@IBAction func cancel(sender: AnyObject) {
self.dismissViewControllerAnimated(true, completion: nil)
}
完成按钮也一样。就像现在一样,每次从“添加新项目”return 中创建一个新的 ProjectsView 实例。
我正在使用 SWRevealViewController。我已经通过应用程序滑出主菜单完全实现了。但是,当我转到一个 VC,它有一个 child,我可以从那里返回时,previous/parent VC 的 self.revealViewController()
returns 为零。主菜单按钮不再起作用。我正在 Swift 编程。下图显示了 VCs 的导航。我有一个 UITableviewcontroller 项目和用于添加新项目的 + 按钮。点击 + 后,会出现新 VC 添加新项目。如果我点击取消按钮,会显示 VC 项目,但主菜单按钮不起作用,我无法打开主菜单。谁能帮我解决这个问题?感谢您的时间和帮助。
这是 class ProjectsView 的开头代码,我在其中为每个 VC 设置了 SWViewController。
class ProjectsView: UITableViewController {
@IBOutlet var mainMenuBttn: UIBarButtonItem!
var projects: [String] = ["Project1", "Project3", "Project3"];
override func viewDidLoad() {
super.viewDidLoad()
if self.revealViewController() != nil {
mainMenuBttn.target = self.revealViewController()
mainMenuBttn.action = "revealToggle:"
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
}
...
您不需要将新项目添加到您的初始导航控制器。为您的取消按钮创建一个 IBAction,例如:
@IBAction func cancel(sender: AnyObject) {
self.dismissViewControllerAnimated(true, completion: nil)
}
完成按钮也一样。就像现在一样,每次从“添加新项目”return 中创建一个新的 ProjectsView 实例。