“ Home”是默认的视图控制器。当您按三行左上角的按钮时,菜单视图控制器会滑出(就像侧面菜单一样)。如您所见,菜单内有四个表单元格,它们代表菜单项。当一个单元格被按下时,我有一个相应的函数被调用。我希望在按下单元格时显示最右边的视图控制器。
这里是问题:我希望最右边的视图控制器继承Home视图控制器的属性,以便导航标题和按钮仍然存在。我该如何实现?
您尝试过这种方式吗?
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let transition = storyboard.instantiateViewController(withIdentifier: "RightViewController") as! RightViewController
navigationController?.pushViewController(transition, animated: true)
它应该打开您的最右视图控制器,并使其像继承按钮一样继承您的家庭控制器
测试一下,并告诉我它是否对您有好处。
这是解决方法:
请确保已设置导航和右视图控制器(在Interface Builder中按Ctrl +拖动)
调用@bebzerk答案中所述的代码:
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let transition = storyboard.instantiateViewController(withIdentifier: "RightViewController") as! RightViewController
navigationController?.pushViewController(transition, animated: true)
现在返回“界面”构建器,并将UINavigationItem和UIBarButtonItem添加到视图控制器。将按钮的图像设置为三行,并将导航项的标题设置为要在顶部显示的名称。
在右视图控制器的ViewController Swift文件中,按Ctrl +拖动栏按钮项并创建IBAction函数。当菜单按钮(在最右边的视图控制器上被按下)被调用。对我来说,此类是从HomeViewController扩展的,因此在函数中,简称为super方法。它应该看起来像这样:
@IBAction override func menuTapped(_ sender: UIBarButtonItem) {
super.menuTapped(UIBarButtonItem())
}
这应该实现所需的功能。