iphone - Storyboard - 引用 AppDelegate 中的 ViewContro

考虑以下场景:我有一个基于 Storyboard的应用程序。我将 ViewController 对象添加到 Storyboard ,将此 ViewController 的类文件添加到项目中,并在 IB 身份检查器中指定新类的名称。现在我将如何从 AppDelegate 以编程方式引用这个 ViewController?我已经使用相关类创建了一个变量并将其转换为 IBOutlet 属性,但是我看不到任何能够在代码中引用新 ViewController 的方法 - 任何 ctrl-drag 连接的尝试都不起作用.

即在 AppDelegate 中,我可以像这样访问基本 ViewController

(MyViewController*) self.window.rootViewController

但是 Storyboard中包含的任何其他 ViewController 呢?

最佳答案

看看documentation对于 -[UIStoryboard instantiateViewControllerWithIdentifier:]。这允许您使用您在 IB 属性检查器中设置的标识符从 Storyboard 中实例化 View Controller :

编辑添加示例代码:

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard"
                                                         bundle: nil];

MyViewController *controller = (MyViewController*)[mainStoryboard 
                    instantiateViewControllerWithIdentifier: @"<Controller ID>"];

关于iphone - Storyboard - 引用 AppDelegate 中的 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8186375/

相关文章:

objective-c - "Receiver type ' CALayer' 例如消息是前向声明”

objective-c - 如何使一个类符合 Swift 中的协议(protocol)?

objective-c - 这个 gdb 输出是什么意思?

ios - 如何使用 NSCache

iphone - 使用 CALayers 的圆形 UIView - 只有一些角落 - 如何?

objective-c - Objective-C 中的选择器?

ios - 如何将 NSAppTransportSecurity 添加到我的 info.plist

iphone - -all_load 链接器标志有什么作用?

objective-c - Swift 中的只读和非计算变量属性

iphone - 检测导航栏上的 'back' 按钮何时被按下