加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

iphone – dismissModalViewController隐藏状态栏后面的父视图

发布时间:2020-12-14 20:04:52 所属栏目:百科 来源:网络整理
导读:我在这里有一个非常奇怪的问题.我正在使用一个现在的模态视图控制器来在ViewController的顶部显示我的MFMailComposer ViewController,它放在导航栏中. [self presentModalViewController:emailviewController animated:YES]; 隐藏,我用… -(void) mailComp
我在这里有一个非常奇怪的问题.我正在使用一个现在的模态视图控制器来在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但是没有工作太

任何想法或建议将被高度赞赏

编辑:大多数人给我一个建议手动修改偏移量.
那不行.因为如果我在我的viewDidLoad / viewWillapper中执行原始viewcontroller方法,那么它将在当前模态视图控制器之前转换我的视图,而在加载模态视图控制器之后它变得正常.

>(void)viewDidAppear:(BOOL)animated {
CGRect frame = self.navigationController.view.frame;
frame.origin.y = 20;
self.navigationController.view.frame = frame;
}

解决方法

尝试将其放在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;
 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读