performSegueWithIdentifier 未按预期显示视图控制器
performSegueWithIdentifier not showing view controller as expected
我以编程方式创建了一个名为 'menu' 的按钮,该按钮已更改为名为 'menuButton' 的 UIBarButtonItem。单击按钮时,我想使用 performSegueWithIdentifier 调用 segue。
Universal.swift
struct UniversalStatic {
static let data = Universal()
}
public class Universal {
let menuButton : UIBarButtonItem
let menu : UIButton
init(){
menu = UIButton(type: UIButtonType.Custom)
menu.setImage(UIImage(named: "menu.png"), forState: UIControlState.Normal)
menu.frame = CGRectMake(0, 0, 25, 20)
menuButton = UIBarButtonItem(customView: menu)
}
HomeViewController.swift
class HomeViewController: UIViewController {
func goToMenuVC() {
self.performSegueWithIdentifier("test", sender: self)
}
override func performSegueWithIdentifier(identifier: String, sender: AnyObject?) {
print("called")
}
override func viewDidLoad() {
super.viewDidLoad()
UniversalStatic.data.menu.addTarget(self, action: "goToMenuVC", forControlEvents: UIControlEvents.TouchUpInside)
self.navigationItem.leftBarButtonItem = UniversalStatic.data.menuButton
}
func viewDidAppear() {
UniversalStatic.data.menu.addTarget(self, action: "goToMenuVC", forControlEvents: UIControlEvents.TouchUpInside)
self.navigationItem.leftBarButtonItem = UniversalStatic.data.menuButton
}
打印语句已打印,所以我知道 'performSegueWithIdentifier' 已被调用,但显示转场已被执行。
我附上了 segue 标识符的屏幕截图。
尝试添加:
super.performSegueWithIdentifier(identifier, sender: sender)
在你的performSegueWithIdentifier
方法中。
我以编程方式创建了一个名为 'menu' 的按钮,该按钮已更改为名为 'menuButton' 的 UIBarButtonItem。单击按钮时,我想使用 performSegueWithIdentifier 调用 segue。
Universal.swift
struct UniversalStatic {
static let data = Universal()
}
public class Universal {
let menuButton : UIBarButtonItem
let menu : UIButton
init(){
menu = UIButton(type: UIButtonType.Custom)
menu.setImage(UIImage(named: "menu.png"), forState: UIControlState.Normal)
menu.frame = CGRectMake(0, 0, 25, 20)
menuButton = UIBarButtonItem(customView: menu)
}
HomeViewController.swift
class HomeViewController: UIViewController {
func goToMenuVC() {
self.performSegueWithIdentifier("test", sender: self)
}
override func performSegueWithIdentifier(identifier: String, sender: AnyObject?) {
print("called")
}
override func viewDidLoad() {
super.viewDidLoad()
UniversalStatic.data.menu.addTarget(self, action: "goToMenuVC", forControlEvents: UIControlEvents.TouchUpInside)
self.navigationItem.leftBarButtonItem = UniversalStatic.data.menuButton
}
func viewDidAppear() {
UniversalStatic.data.menu.addTarget(self, action: "goToMenuVC", forControlEvents: UIControlEvents.TouchUpInside)
self.navigationItem.leftBarButtonItem = UniversalStatic.data.menuButton
}
打印语句已打印,所以我知道 'performSegueWithIdentifier' 已被调用,但显示转场已被执行。
我附上了 segue 标识符的屏幕截图。
尝试添加:
super.performSegueWithIdentifier(identifier, sender: sender)
在你的performSegueWithIdentifier
方法中。