0

我所有的ViewController类都继承自MyBaseViewController其中有一个自定义viewDidLoad方法:

- (void)viewDidLoad {
    int x = self.view.bounds.size.width / 2;
    int y = self.view.bounds.size.height / 2;

    self.spinner = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(x, y, 50, 50)];
    self.spinner.activityIndicatorViewStyle = UIActivityIndicatorViewStyleGray;

    [self.view addSubview:self.spinner];

    [self.spinner startAnimating];
}

每个子类都调用[super viewDidLoad]自己的viewDidLoad方法。但是,微调器始终“居中”,就好像设备处于纵向模式而不是横向模式一样,并且应用程序被锁定为横向模式,如下所示:

在此处输入图像描述

为什么是这样?

4

1 回答 1

0

视图控制器方法的调用顺序如下:-

1) viewDidLoad 2) viewWillAppear 3) viewDidAppear

在您的情况下,BaseviewController 作为 Parent 类。加载子类时,它将调用您的子类定向方法。一旦调用子类定向方法,您需要调用基类 viewcontroller 方法。

请检查您的定向方法是否被调用。所以活动指示器将显示在屏幕中间。

还要尽量避免在 viewDidLoad 方法中编写方向代码。请在 viewWillAppear 或 viewDidAppear 方法中添加您的代码。

于 2014-03-06T20:14:12.957 回答