Objective c presentViewController是否更改view.frame?

Objective c presentViewController是否更改view.frame?,objective-c,Objective C,我有一个关于屏幕转换的问题 为了传输屏幕,我经常使用presentViewController方法 NextViewController *nextViewController = [[NextViewController alloc] init]; nextViewController.view.frame = CGRectMake(10, 10, 200, 400); [self presentViewController:nextViewController animated:YE

我有一个关于屏幕转换的问题

为了传输屏幕,我经常使用presentViewController方法

NextViewController *nextViewController = [[NextViewController alloc] init];
nextViewController.view.frame = CGRectMake(10, 10, 200, 400);    
[self presentViewController:nextViewController animated:YES completion:nil];
但是,未应用我实现的view.frame设置

以下代码正确运行

NextViewController *nextViewController = [[NextViewController alloc] init];
[self presentViewController:nextViewController animated:YES completion:nil];
nextViewController.view.frame = CGRectMake(10, 10, 200, 400);
这些代码有什么区别? view.frame是否在presentViewController方法中重新定义


谢谢。

在显示视图控制器之前,不会创建self.view

ie)nextViewController.view.frame在[self-presentViewController:nextViewController-animated:YES completion:nil]之前无效

NextViewController *nextViewController = [[NextViewController alloc] init];
nextViewController.view.frame = CGRectMake(10, 10, 200, 400);    
[self presentViewController:nextViewController animated:YES completion:nil];
上述代码不起作用,因为您正在设置尚未创建的nextViewController的视图

因此,在下一个代码中,首先加载视图控制器,然后更改加载视图的帧

=====================================编辑===========================

如果要直接在视图控制器中设置框架,请使用
IBOutlet
绑定视图,然后在

- (void) viewDidAppear:(BOOL)animated
 {
      //set the frame here
      self.myView.frame = CGRectMake(10, 10, 200, 400);
 }

希望它能有所帮助:)

展示
nextViewController
,然后只有您可以更新它的各种属性。在视图加载到视图之前执行此操作将失败。显示视图,然后更新它。

但是,我无法在NextViewController中设置view.frame,如下所示。[超级视图下载];self.view.frame=CGRectMake(10,10,200,400);如果我没有弄错你的意思,那么你正在设置viewDidLoad函数中的帧??我尝试了两种方法。rootViewController中的“nextViewController.view.frame”,以及nextViewController.view.frame中“[super viewDidLoad];”之后的“self.view.frame”。是否将视图绑定到任何IBOutlet?