我以编程方式将 UIButton 附加到 navigationBar:
catButton.addTarget(self, action: "oc:", forControlEvents: .TouchUpInside)
var catBarButton:UIBarButtonItem = UIBarButtonItem(customView: catButton)
self.navigationItem.setRightBarButtonItem(catBarButton, animated: false)
当函数 oc() 被触发时,我想弹出 View Controller
let segue = UIStoryboardSegue(identifier: "oc", source: self, destination: MDComDBCatsTVC())
prepareForSegue(segue, sender: but)
但这不会打开 MDComDBCatsTVC.. 如何以编程方式执行此操作,因为我无法从 Storyboard 中的按钮拖动,因为我的按钮是以编程方式添加的
最佳答案
I can't drag from button in my storyboard because my button is added programatically
您可以通过从 View Controller 图标拖动到目标 View Controller 来在 Storyboard中创建转场。然后可以以编程方式使用此 segue。
单击 segue 以在“属性”检查器面板中分配一个标识符。然后可以使用此标识符以编程方式访问 segue。
Xcode 会坚持 popover segues 有一个 anchor 。错误信息是“Popover segue with no anchor”。这可以在属性检查器 - anchor 属性中解决。从圆圈拖动到您的 View 。
在您以编程方式创建的按钮的操作中,您将能够使用例如访问 segue:
func buttonAction(sender:UIButton!)
{
performSegueWithIdentifier("popoversegue", sender: self)
}
( ... 或者更可能是使用 if let
等更健壮的东西)
关于Swift - UIStoryboardSegue 以编程方式弹出 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30597204/