2011-11-06 52 views

回答

21

我不知道如果我理解正确的问题,我认为你是问你如何让在故事板第一的viewController。为了得到这个电话,

UIStoryboard *storybord = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
UIViewController *vc =[storybord instantiateInitialViewController]; 

更改故事板的名称以适合您的名字,MainStoryboard只是默认名称。希望这是你正在寻找的。

编辑:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    UIStoryboard *storybord = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
    UIViewController *vc =[storybord instantiateInitialViewController]; 
    //set the delegate on the view controller that you have loaded 
    // Override point for customization after application launch. 
    return YES; 
} 
+0

是的,这就是我所需要的。关于如何在通用应用程序(iphone vs ipad)中加载设备的正确故事板的任何想法? –

+0

这应该这样做 'UIViewController * vc;如果(UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPad){UIStoryboard * storybord = [UIStoryboard storyboardWithName:@“MainiPadStoryboard”bundle:nil]; vc = [storybord instantiateInitialViewController]; } else { UIStoryboard * storybord = [UIStoryboard storyboardWithName:@“MainiPhoneStoryboard”bundle:nil]; vc = [storybord instantiateInitialViewController]; }' –

+11

很确定这是抓取一个新的副本,而不是现有的副本。 –

15

而是然后用

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

您可以在您的应用程序委托的头文件设置该属性

@property (nonatomic, weak) UIViewController* initialViewController; 

和创造现有故事板的新副本此方法只需将self.window.rootViewController分配给属性

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.initialViewController = self.window.rootViewController; 

    return YES; 
} 

这应该工作,因为在窗口的应用程序委托协议的属性是访问rootViewConroller这个控制器initialViewController如果用故事板。

+0

这有效,是正确答案;实例化一个新的控制器与指向故事板中已经实例化的控制器不一样。 – Wizfinger

+0

是的,这应该是被接受的答案。 – Martin

-1

Swift 2.0为那些想要的实现。

您可能需要修改STROYBAORD和控制器视图标识符。另外o

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 

     let storyboard: UIStoryboard = UIStoryboard(name: "[STORYBOARD NAME]", bundle: nil) 
     let viewController:UIViewController = storyboard.instantiateViewControllerWithIdentifier("[CONTROLLER IDENTIFIER]") // You have replace UIViewController with you customer controll type 


     self.window?.rootViewController = viewController 
     self.window?.makeKeyAndVisible() 

     return true 
    } 
+0

尝试了解问题,而不是将接受的答案转换为swift ... – Martin

+0

@Martin我编辑了答案。希望即使是IOS初学者现在也能理解。 –

+0

但您的解决方案会创建一个新的视图控制器,而@aran正在寻找解决方案以获取现有的第一个视图控制器。目前接受的答案不是一个好答案。 – Martin

相关问题