ios - 以编程方式从 UIView 执行 Segue

标签 ios iphone cocoa-touch uiview

我正在尝试创建一个自定义 UIView,当点击它时,它会转到一个新的 View Controller 。我想以编程方式而不是在 Interface Builder 中执行此操作。当我这样做时,如何获得对目标 View Controller 的引用?我假设我不只是创建一个并将其设置为下一个 View 或其他内容,那么引用来自哪里?因为当它在 Storyboard中完成时,您只需选择希望 Segue 作为目的地的位置,所以这不是问题,但是从编程上讲,我不明白该引用来自哪里。

我也在 Swift 中这样做。我不认为这真的有什么大的不同,但它可能会改变一些东西。

我尝试使用添加了tapGestureRecognizer的UIView,然后在点击时执行segue,但是我收到了无法识别的选择器错误。

最佳答案

如果你在 Storyboard中声明你的 UIViewController 你必须设置它的 Storyboard ID,然后,你可以使用这样的东西而不是执行 segue(没有运行它,但在 obj-c 中做了完全相同的事情,所以我认为它会做得很好):

let storyboard : UIStoryboard = UIStoryboard(name: "myStoryboardName", bundle: nil);
let vc : MyUIViewController = storyboard.instantiateViewControllerWithIdentifier("myVCStoryboardID")     as MyUIViewController;
self.presentViewController(vc, animated: true, completion: nil);

关于ios - 以编程方式从 UIView 执行 Segue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27223794/

相关文章:

ios - 当 View Controller 在本地显示并显示警报时,控件不会变暗

ios - 如何在 UITableView 上方显示加载标签?

ios - 低功耗模式下或禁用后台应用程序刷新的 GeoFence 行为

ios - Swift 异步方法和返回/完成 block

objective-c - 测试枚举给出警告 : comparison between pointer and integer

ios - 自定义分段控件宽度代码没有故意工作

ios - 如何在 Xcode 7 中嵌入 Cocoa Touch Framework

ios - 如何将 Swift CocoaPods 与桥接头文件集成

ios - 在 swift Xctest 中测试 Firebase 类

iPhone 是否可以在主屏幕上使用缩短版的应用程序名称?