12

私はこのコード行を持っています:

[UIStoryboard storyboardWithName:(NSString *) bundle (NSBundle *)];

とストーリーボードファイル。コントローラの名前を実際にどこに挿入し、バンドルはどこにありますか?

ばかげた質問ですが、わかりません

4

4 に答える 4

14

すべてが本当に簡単です!

これはコードです:

UIStoryboard *storyboard = 
[UIStoryboard storyboardWithName:@"MainStoryboard" 
                          bundle:[NSBundle mainBundle]];

@"Main Storyboard"は、.storyboard ファイルの名前ですバンドルは、.storyboardファイルを含む単なるバンドルであり、通常はアプリのメイン バンドルです。

たとえば、UINavigationController のスタックにプッシュする目的で、いくつかの UIViewControllers にアクセスしたい場合は、次のようにする必要があります。

UIViewController *yourViewController = 
[storyboard instantiateViewControllerWithIdentifier:@"viewControllerIdentifier"];

Xcode の Identity Inspector で Identifier を UIViewController に設定できます。

それがあなたを助けることを願っています!

于 2012-09-21T15:47:20.460 に答える
8

nameパラメータは、ファイル名前.storyboardです(拡張子なし)。

通常、アプリケーションのbundleメイン バンドルです。一般にnil、ランタイムがデフォルトでメイン バンドル内のストーリーボード ファイルを検索するように を渡します ( を渡す場合と同じ[NSBundle mainBundle])。実際には、通常、iOS アプリケーションには 1 つのバンドルしかありません。これは、IPA バンドルを表すメイン バンドルであるためnil、このパラメータの共通の値です)

たとえば、MyStory.storyboard自分の名前のストーリーボードがある場合は、次のように記述します。

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MyStory" bundle:nil];

実際、これはすべてApple のドキュメントでこのメソッドについて説明されています。

storyboardWithName:バンドル:

指定されたストーリーボード リソース ファイルのストーリーボード オブジェクトを作成して返します。

+ (UIStoryboard *)storyboardWithName:(NSString *)name bundle:(NSBundle *)storyboardBundleOrNil

パラメーター

  • name:ファイル拡張子を除いたストーリーボード リソース ファイルの名前。このパラメーターが nil の場合、このメソッドは例外を発生させます。
  • storyboardBundleOrNil: ストーリーボード ファイルとその関連リソースを含むバンドル。nil を指定すると、このメソッドは現在のアプリケーションのメイン バンドルを検索します。
于 2012-09-21T15:47:17.943 に答える
5
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
于 2015-08-21T10:49:18.777 に答える