0

当 UIViewControllers 使用 实例化时- (id)initWithNibName:bundle:,你可以传入一个包。

有没有办法让实例化的视图控制器找出它的原始包是什么?

我有一个容器 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

UIViewController有一个名为的属性nibBundle,其中包含您要查找的内容:

UIViewController 类参考:

nibBundle
如果存在,则返回接收者的 nib 包的名称。(只读)

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

可用性
适用于 iOS 2.0 及更高版本。
另请参阅
- initWithNibName:bundle:
@property nibName

UIViewController.h中声明

所以,你可以使用:

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