我使用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;
}
答案 0 :(得分:1)
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:YES];
[self.navigationController setNavigationBarHidden:NO];
}
答案 1 :(得分:1)
我通过在dismissViewController的完成块内将导航栏的hidden属性设置为NO来解决了这个问题。
[self dismissViewControllerAnimated:YES completion:^{
self.navigationController.navigationBar.hidden = NO;
}];
答案 2 :(得分:0)
你是否正确呈现? 取自文档:
展示视图控制器时,必须使用 适用于当前设备的方法。在iPad上,你必须出席 弹出窗口中的视图控制器。在iPhone和iPod touch上,你必须 以模态呈现。
答案 3 :(得分:0)
哇我有同样的问题 - 在UIActivityViewController
被解雇之后,我的UIView
之一会“消失”并且有一个不同的奇怪框架。然后我意识到这是因为我的消失视图的UIView
子类已将translatesAutoresizingMaskIntoConstraints
设置为false
,而我没有使用Autolayout,所以应该是true
:
self.setTranslatesAutoresizingMaskIntoConstraints(true)
简而言之,如果不是,请确保您的“消失”视图不会认为它正在使用约束。