2013-03-18 21 views
1

我在我的應用程序中創建並提供了UIActivityViewController,其中包含自定義UIActivity項。何時以及如何解除UIActivityViewController

當我點擊UIActivity圖標,UIActivityViewController滑落並呈現我的模態視圖控制器。但是,當我解僱我的VC時,出現了UIActivityViewController

當活動項目被按下時,我怎樣才能讓它消失,再也不會再出現?

+0

你讀這個公認的答案post..i覺得它確實有助於you..http://stackoverflow.com/questions/14570753/lack-of-a-close- button-on-uiactivityviewcontroller – Shivaay 2013-03-19 06:48:12

回答

2

您需要撥打所選UIActivity上的activityDidFinish:方法。

從文檔爲UIActivity activityDidFinish:

討論
此方法駁回由UIActivityViewController對象提供的共享界面。如果您使用activityViewController方法提供視圖控制器,則此方法也會取消該視圖控制器。

您必須在完成與此對象的服務關聯的工作後調用此方法。無論您是使用activityViewController還是performActivity方法啓動服務,情況都是如此。在調用方法時,使用布爾值指示服務是否成功完成。

+1

什麼時候應該調用activityDid完?當我在VC提交時調用它時,VC被解僱,之後UIActivityVC下滑。另一個問題:我不想讓我的風投知道誰在介紹它。理想情況下,應該在UIActivityVC中呈現ViewControllerWillBeDismissed方法,這樣我也可以解散UIActivityVC。 – msmialko 2013-03-19 11:10:59

+0

你不會解僱你的VC。當用戶完成VC時,你可以在活動上調用'activityDidFinish:'。正如我引用的文檔中所述,這將駁回風險投資和活動觀點。 – rmaddy 2013-03-19 16:00:09

+0

如果您想完全控制VC何時以及如何呈現和解散,請在您的活動中儘快調用「activityDidFinish:」。然後自己出示VC,而不是從活動中返回。那麼,當然,你適當的時候會解僱它。 – rmaddy 2013-03-19 16:02:08

2

讓當活動一個從UIActivityVC選擇,要在當前視圖控制器Ç呈現模式視圖控制器中號說。

如果實現一個-(UIViewController*)activityViewController方法,你需要調用[A activityDidFinish]在模態視圖控制器中號的解僱法;

如果實現-(void) performActivity方法,這是不可能的呈現模態的視圖,因爲當前視圖控制器Ç是駁回UIActivityVC的過程。

我認爲最終的解決方案有點棘手。我的基本思想是將UIActivityViewController分類並覆蓋-(void) viewDidDisappear方法。因此,你可以做任何你喜歡(即展示自己的模式的看法,或按其他視圖控制器的序列)在當前視圖控制器C.

+0

我有一個問題從視圖控制器M回來,試圖提出AddScreen:在WBTabBarController:它已經呈現UIActivityViewController,是因爲我不關閉uiactivityVC? – Skovie 2013-12-05 17:04:34

+0

我也面臨着與skovie相同的問題。 @skovie你找到了這個 – 2014-09-04 12:07:23

+0

的任何解決方案我沒有閱讀代碼,但我想這是同樣的問題,因爲當前的模態視圖控制器沒有被解僱時,試圖呈現模態視圖控制器,嘗試提出第二模態視圖控制器時,第一模態視圖控制器的' - (void)viewDidDisappear' – 2014-09-11 02:41:54

0

,我發現這個由阮經黃

 [self presentViewController: activityController animated: YES completion:nil]; 



     activityController.modalPresentationStyle = UIModalPresentationPopover; 
     UIPopoverPresentationController *popPC = activityController.popoverPresentationController; 
     popPC.barButtonItem = saveBtn; 
     popPC.permittedArrowDirections = UIPopoverArrowDirectionAny; 

讀取所有約在這裏:

http://getnotebox.com/developer/uiactivityviewcontroller-ios-8/

相關問題