私はこのコード行を持っています:
[UIStoryboard storyboardWithName:(NSString *) bundle (NSBundle *)];
とストーリーボードファイル。コントローラの名前を実際にどこに挿入し、バンドルはどこにありますか?
ばかげた質問ですが、わかりません
すべてが本当に簡単です!
これはコードです:
UIStoryboard *storyboard =
[UIStoryboard storyboardWithName:@"MainStoryboard"
bundle:[NSBundle mainBundle]];
@"Main Storyboard"は、.storyboard ファイルの名前です。バンドルは、.storyboardファイルを含む単なるバンドルであり、通常はアプリのメイン バンドルです。
たとえば、UINavigationController のスタックにプッシュする目的で、いくつかの UIViewControllers にアクセスしたい場合は、次のようにする必要があります。
UIViewController *yourViewController =
[storyboard instantiateViewControllerWithIdentifier:@"viewControllerIdentifier"];
Xcode の Identity Inspector で Identifier を UIViewController に設定できます。
それがあなたを助けることを願っています!
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 を指定すると、このメソッドは現在のアプリケーションのメイン バンドルを検索します。
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];