我有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我使用该代码将导航控制器推送到VC3
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运行良好。
请帮我解决这个错误。非常感谢!
答案 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);
}
}
包含整个导航控制器(包括所包含的控制器)推送堆栈)视图层次结构。