在工作中的 iOS 应用程序中,我们有一个视图控制器,它以模态形式呈现另一个视图控制器。类似于:
-(void)didTapOnStartButton {
MyViewController *myView = [[MyViewController alloc] init];
[self presentViewController:myView animated:YES completion:nil];
}
然后视图控制器实例化一个导航控制器并在其上放置另一个视图控制器......类似于:
@interface MyViewControler()
@property (nonatomic, strong) UINavigationController *childNav;
@end
@implementation MyViewControler
-(void)viewDidLoad {
OtherViewController *otherController = [[OtherViewController alloc] init];
self.childNav = [[UINavigationController alloc] initWithRootViewController:otherController];
[self.view addSubview:childNav.view];
childNav.view.frame = self.view.frame;
}
...这导致呈现的视图控制器具有导航栏(如我所愿),但是它的高度是错误的。我对框架进行了很多实验,尝试将其 Y 原点偏移 -22px,但 OtherViewController 是一个表格视图控制器,其内容最终在屏幕外 -22px (被导航栏覆盖)。所以我不太确定为什么会发生这种情况,以及如何解决它。
任何帮助将不胜感激。