1

我使用UIActivityViewController來顯示與電子郵件和消息的共享功能,但是如果我取消彈出的視圖控制器中的郵件,呈現視圖控制器的導航欄消失了。我只能這樣做的方法來顯示UIActivityViewControllerUINavigationBar在關閉來自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

我解決了這個問題,在dismissViewController的完成塊內設置導航欄的隱藏屬性爲NO。

[self dismissViewControllerAnimated:YES completion:^{ 
    self.navigationController.navigationBar.hidden = NO; 
}]; 
1
-(void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:YES]; 
    [self.navigationController setNavigationBarHidden:NO]; 
} 
+0

我忘了提及,我編輯了我的答案 – gpichler

0

您是否正確呈現呢? 從文檔摘自:

當呈現視圖控制器,你必須這樣做使用當前設備的 適當的手段。在iPad上,您必須在彈出窗口中提供視圖控制器 。在iPhone和iPod touch上,您必須以模態方式顯示 。

+0

'presentModalViewController'在iOS 6.0中已被棄用,而應像我一樣使用'presentViewController:animated' – gpichler

0

哇,我有同樣的問題 - 我的後駁回UIActivityViewController,我UIView s就「消失」,並有不同的奇怪的框架之一。然後,我意識到,這是因爲我的UIView子的消失的觀點已成立translatesAutoresizingMaskIntoConstraintsfalse,而我沒有使用自動佈局,所以它應該是true

self.setTranslatesAutoresizingMaskIntoConstraints(true) 

總之,請確保您的「消失」如果不是,視圖不認爲它使用約束。

相關問題