11

ApplicationDelegateが実装するプロトコルがあります。これをストーリーボードで定義された最初のビューコントローラーに渡します。メソッドからアクセスするにはどうすればよいですか?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
4

3 に答える 3

23

質問を正しく理解しているかどうかはわかりませんが、ストーリーボードの最初の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;
}
于 2011-11-15T10:20:26.933 に答える
14

代わりに、を使用して既存のストーリーボードの新しいコピーを作成します

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であるため、これは機能するはずです。

于 2013-05-09T08:40:51.063 に答える
-2

必要な人のためのSwift2.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
    }
于 2016-04-20T10:22:39.660 に答える