从 UIActivityViewController 关闭邮件后 UINavigationBar 消失

Posted

技术标签:

【中文标题】从 UIActivityViewController 关闭邮件后 UINavigationBar 消失【英文标题】:UINavigationBar disappears after dismissing mail from UIActivityViewController 【发布时间】:2014-04-15 13:13:07 【问题描述】:

我正在使用UIActivityViewController 来显示电子邮件和消息的共享功能,但是如果我在弹出的视图控制器中取消邮件,呈现视图控制器的导航栏就会消失。我只在显示UIActivityViewController的方法中这样做:

UIActivityViewController *shareController = [[UIActivityViewController alloc] initWithActivityItems:@[UIActivityTypeMail, UIActivityTypeMessage] applicationActivities:nil];
shareController.excludedActivityTypes = @[UIActivityTypePostToTwitter, UIActivityTypeCopyToPasteboard];

[self.navigationController presentViewController:shareController animated:YES completion:nil];

在 viewWillAppear 中,我有:

-(void)viewWillAppear:(BOOL)animated

  [super viewWillAppear:YES];
  self.navigationController.navigationBar.hidden = NO;

【问题讨论】:

【参考方案1】:
-(void)viewWillAppear:(BOOL)animated

  [super viewWillAppear:YES];
  [self.navigationController setNavigationBarHidden:NO];

【讨论】:

【参考方案2】:

我通过在dismissViewController的完成块内将导航栏的隐藏属性设置为NO解决了这个问题。

[self dismissViewControllerAnimated:YES completion:^
    self.navigationController.navigationBar.hidden = NO;
];

【讨论】:

【参考方案3】:

哇,我也遇到了同样的问题——在我的UIActivityViewController 被解雇后,我的一个UIViews 会“消失”并有一个不同的奇怪框架。然后我意识到这是因为我的消失视图的UIView 子类将translatesAutoresizingMaskIntoConstraints 设置为false,而我没有使用Autolayout,所以它应该是true

self.setTranslatesAutoresizingMaskIntoConstraints(true)

简而言之,如果不是,请确保您的“消失”视图不会认为它正在使用约束。

【讨论】:

我正在使用自动布局。知道如何处理这个问题吗?【参考方案4】:

你是否正确地展示了它? 取自文档:

当呈现视图控制器时,你必须使用 适用于当前设备的方法。在 iPad 上,您必须出示 弹出窗口中的视图控制器。在 iPhone 和 iPod touch 上,您必须 以模态方式呈现。

【讨论】:

presentModalViewControllerios 6.0 中已弃用,您应该像我一样使用 presentViewController:animated

以上是关于从 UIActivityViewController 关闭邮件后 UINavigationBar 消失的主要内容,如果未能解决你的问题,请参考以下文章

iOS 8.3:UIActivityViewController 显示无关的行

SwiftUI完美弹出UIActivityViewController(通过微信QQ或隔空投送分享)的应用分享窗口

SwiftUI完美弹出UIActivityViewController(通过微信QQ或隔空投送分享)的应用分享窗口

从 NIB 与从代码加载自定义滑块:从代码加载时不存在子视图

如何从其他面板从 JTextField 获取输入

从PRISM开始学WPFMVVMViewModel?