Tôi đang viết một ứng dụng và tôi cần thay đổi chế độ xem nếu người dùng đang nhìn vào ứng dụng trong khi nói chuyện trên điện thoại.
Tôi đã thực hiện phương pháp sau:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSLog(@"viewWillAppear:");
_sv.frame = CGRectMake(0.0, 0.0, 320.0, self.view.bounds.size.height);
}
Nhưng nó không được gọi khi ứng dụng trở lại nền trước.
Tôi biết rằng tôi có thể thực hiện:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarFrameChanged:) name:UIApplicationDidChangeStatusBarFrameNotification object:nil];
nhưng tôi không muốn làm điều này Thay vào đó, tôi muốn đặt tất cả thông tin bố cục của mình vào phương thức viewWillAppear: và để điều đó xử lý tất cả các tình huống có thể xảy ra.
Tôi thậm chí đã cố gắng gọi viewWillAppear: từ applicationWill EntryForeground:, nhưng dường như tôi không thể xác định chính xác bộ điều khiển xem hiện tại vào thời điểm đó.
Có ai biết cách thích hợp để đối phó với điều này? Tôi chắc chắn tôi đang thiếu một giải pháp rõ ràng.
isMemberOfClass
hoặc isKindOfClass
, tùy thuộc vào nhu cầu của bạn.
applicationWillEnterForeground:
để xác định khi nào ứng dụng của bạn đã nhập lại trạng thái hoạt động.