从故事板中初始化的UIViewController调用方法 – 目标c
我是新来的目标c Storyboarding
,我需要从UIVIewController
调用方法。 在Storyboarding
之前我在AppDelegate
中初始化UIViewController
,或者只是在那里分配指针,然后从任何类中调用方法,访问AppDelegate属性。 如何在Storyboarding
做到这一点,如果没有自己初始化UIViewController
? 我的应用程序是UITabBar
应用程序,如果它确实很重要。
您可以从应用程序委托中获取故事板的根视图控制器。 例如:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { UITabbarController *tbc = (UITabbarController *)self.window.rootViewController; // Do any setup you want to here // You aren't setting up the controller - just accessing the one that has been set up for you by the storyboard return YES; }
如果你想从任何一个类都可以使用这个方法,你可以继续这样做。 放在你的AppDelegate中,然后在你想要使用的控制器上检索共享实例。 (所有的应用程序都可以访问你的appdelegate),所以只需导入应用程序委托的头部,创build一个新的特定的appdelegatename类的实例,并调用共享的委托。 那么你可以使用这个方法,就好像这个类可以拥有它一样。
另外,你可以使用这样的东西
#import "AppDelegate.h" #define appDelegate (AppDelegate *) [[UIApplication sharedApplication] delegate]
如果您想要调用故事板中指定的任何视图控制器的方法,可以通过引用它们的标识符来实现:
PreviewViewController *tmp = [[self storyboard] instantiateViewControllerWithIdentifier:@"PreviewViewController"];