从故事板中初始化的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"];