0

を使用して UIViewControllers をインスタンス化する場合- (id)initWithNibName:bundle:、バンドルを渡すことができます。

インスタンス化されたView Controllerが元のバンドルが何であったかを知る方法はありますか?

コンテナー UIViewController があり、親が作成されたのと同じバンドルを使用して、その子 UIViewController をインスタンス化したいと考えています。バンドルをivarとして保存する以外に、これを取得する別の方法はありますか?

ContainerViewController *pvc = [[ContainerViewController alloc] 
initWithNibName:nil bundle:[NSBundle mainBundle]];

// inside ContainerViewController:
ChildViewController *cvc = [[ChildViewController alloc] 
initWithNibName:nil bundle:parentBundle];
4

1 に答える 1

0

UIViewControllernibBundleあなたが探しているものを含むという名前のプロパティがあります:

UIViewController クラス リファレンス:

nibBundle
受信者の nib バンドルが存在する場合は、その名前を返します。(読み取り専用)

@property(nonatomic, readonly, retain) NSBundle *nibBundle

利用
可能 iOS 2.0 以降で利用できます。
関連項目 UIViewController.h で
- initWithNibName:bundle:
@property nibName
宣言

したがって、次を使用できます。

ChildViewController *cvc = [[ChildViewController alloc] initWithNibName:nil bundle:self.nibBundle];
于 2012-07-25T03:28:03.440 に答える