推送视图控制器没有推动ios 7

时间:2015-07-01 18:59:55

标签: ios objective-c iphone

我有3个VC(视图控制器)(VC1,VC2,VC3)。

在VC1,我使用了代码:

self.navViewController = [[UINavigationController alloc] initWithRootViewController:viewController];
self.navViewController.view.frame = CGRectMake(self.view.frame.size.width - viewController.view.frame.size.width, 
                                               viewController.view.frame.origin.y, 
                                               viewController.view.frame.size.width, 
                                               viewController.view.frame.size.height);
[self.navigationController addChildViewController:self.navViewController];
[self.navigationController.view addSubview:self.navViewController.view];
[self.navViewController didMoveToParentViewController:self.navigationController];

VC2正在显示,然后在VC2我使用该代码将导航控制器推送到VC​​3

VC3 *vc3 = [[VC3 alloc] initWithNibName:@"VC3" bundle:nil];
[vc3.view updateConstraintsIfNeeded];
[self.navigationController pushViewController:vc3 animated:YES];

目前,当我添加代码段[vc3.view updateConstraintsIfNeeded];时。我看到导航已更改,内容视图不会更改和显示。它只显示了VC2的内容视图。

在我的项目中,我使用自动布局。我尝试删除我的项目上的自动布局它运作良好。当我添加自动布局时,它工作错误。

它只发生在iOS 7上,iOS 8运行良好。

请帮我解决这个错误。非常感谢!

1 个答案:

答案 0 :(得分:1)

问题是您是在推送的视图控制器上显示VC2。将一个视图控制器作为导航控制器的子控件的原因是什么?相反,拥有VC2和导航控制器的共同祖先,或者将VC2放在视图层次结构中的其他位置,而不是导航控制器view的顶部,导航控制器的//This part to read from existing file //Create a loop over all the rows of excel file to read it for (int b=0; b<=rowCount;b++) { Row row = sheet.getRow(b); //loop to print cell values in a row for (int j = 0; j < row.getLastCellNum(); j++) { String cellinput=row.getCell(j).getStringCellValue(); System.out.println(cellinput); } } 包含整个导航控制器(包括所包含的控制器)推送堆栈)视图层次结构。