我这里有一个非常奇怪的问题。我正在使用一个现有的模态视图控制器在ViewController上显示我的MFMailComposer ViewController,它放在导航栏中。
[self presentModalViewController:emailviewController animated:YES];
隐藏,我用......
-(void) mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
[self dismissModalViewControllerAnimated:YES];
}
一切正常但当我解除我的MailComposer时,原始视图控制器隐藏在状态栏后面。
我尝试使用setFrame方法将视图偏移量修改为10,但它无法正常工作。 (这在模态视图控制器出现和解除之前和之后都很累)
我试过暂时隐藏状态栏但没有工作。
我已经尝试过self.navigationcontroller presentmodalviewcontrolle,但这也没有用......
任何想法或建议都将受到高度赞赏
编辑:大多数人都给我一个手动修改偏移的建议。 那不行。因为如果我在原始viewcontroller方法的viewDidLoad / viewWillapper中执行此操作,那么它会在当前模态视图控制器之前移动我的视图,而在我加载模态视图控制器之后它变得正常。
答案 0 :(得分:3)
尝试将其放入ViewDidAppear:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
最坏的情况是,如果仅在模态视图控制器被解除后才发生,则在.h中为afterFirstLaunch声明一个布尔值并将其放在viewDidAppear中:
if(afterFirstLaunch){
CGRect frame = self.navigationController.view.frame;
frame.origin.y = 20;
self.navigationController.view.frame = frame;
}
else {
afterFirstLaunch = true;
}