使用另一个导航控制器内的导航控制器查看错误

时间:2012-06-01 03:26:33

标签: iphone ios uiviewcontroller uinavigationcontroller

我在另一个导航控制器内的视图控制器中添加了一个导航控制器... lol

好吧无论如何因为这个结构我对任何视图都有问题我推到“子”导航控制器..因为它只适合“父”导航控制器的grame内部推动推送视图内容下来约20 / 40pxl ...

我想知道如何阻止这种情况发生..这里有两张图片告诉你发生了什么。

enter image description here

标签在“界面构建器”

中明确居中

enter image description here

这是我到目前为止的代码。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    // Init the (sub)navigationController
    otherNav = [[UINavigationController alloc] init];
    // Add this (sub)NavController to the current viewcontroller (which is inside the (parent)navcontroller)
    [self.view addSubview:otherNav.view];
    // Hide the (sub)NavControllerbar
    otherNav.navigationBar.hidden = YES;

    // Load a detial view into the (sub)NavController
    DetailViewController *detailView = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:[NSBundle mainBundle]];
    [otherNav pushViewController:detailView animated:NO];
}

另一个Nav也在.h文件中设置,以便在此视图中进行全局访问。

1 个答案:

答案 0 :(得分:1)

当"超级" NavigationBar是可见的,self.view.frame.height是:

  
      
  • 480-20-44(actualViewheight-statusbarheight-navigationBarheight)。
  •   

您的问题有两种解决方案。

1。为简单起见,我想说,如果你唯一的问题是让它集中化。

    [self.view addSubview:otherNav.view];
    [otherNav.view setCenter:self.view.center];

这将使您的标签中心对齐。

2.但是,如果您正在使用界面构建器;

  
      
  1. 选择xib文件。
  2.   
  3. 选择视图。
  4.   
  5. 打开Utilities。
  6.   
  7. 将顶部栏设置为导航栏。
  8.   

然后你会对齐的东西将会在设备/模拟器上或你正在测试的东西上得到。