我有一个NavigationController,我想创建一个View,它从屏幕顶部动画并位于navigationBar上方。我正在使用xib初始化viewcontroller,当我将其添加为[self.view addSubview:myView];
时,它可以正常工作,但它位于导航栏下方。当我尝试将其添加为[self.navigationController.view addSubview:myView];
时,它会将其置于navigationBar之上,但是视图不会显示放置在xib中的任何子视图。我不明白为什么会发生这种情况,一直试图解决这个问题几个小时。
更新 我从xib的自定义视图与自定义ViewController类配对,我在其中添加了此代码:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSLog(@"!!! %i", [self.view.subviews count]);
}
如果我将myView添加到self.view,它会打印1(实际上有1个子视图),但是当我将其添加为self.navigationController.view -viewDidAppear
时甚至没有被调用。但它确实出现在屏幕上没有子视图。现在我更加困惑了。
答案 0 :(得分:0)
我认为你需要使用它:
[self.navigationController.navigationBar addSubview:myView];
答案 1 :(得分:0)
如果您不需要它,为什么不删除导航控制器?另一种方法是隐藏导航栏,以便视图占据完整的空间,然后在需要时再次显示导航栏。 如果您提供一些视图代码,我可以提供更多帮助。
答案 2 :(得分:0)
原来我是个白痴。这是一个非常简单的范围问题。我在方法中实例化了我的VC的局部变量,当然它最后发布了。一旦我将我的VC分配给一个全局变量,它就开始像魅力一样工作。很简单。