我的所有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
。但是,微调器总是“居中”,就像设备处于纵向模式而不是横向模式一样,应用程序被锁定为横向模式,如下所示:
为什么会这样?
答案 0 :(得分:0)
视图控制器方法的调用顺序如下: -
1)viewDidLoad 2)viewWillAppear 3)viewDidAppear
BaseViewController作为您的案例中的Parent类。当Child类加载时,它将调用您的子类定向方法。一旦调用了子类定向方法,就需要调用基类viewcontroller方法。
请检查您的定向方法是否被调用。 因此,活动指示器将显示在屏幕中间。
还要尽量避免在viewDidLoad方法中编写方向代码。请在viewWillAppear或viewDidAppear方法中添加您的代码。