在iOS 6中使用客戶UIActivity子類時,可以指定一個自定義視圖控制器,當您從初始UIActionViewController的視圖中選擇動作時將顯示該控制器。您可以通過從UIActivity子類的activityViewController
方法中返回對自定義視圖控制器的引用來完成此操作。UIActivity activityViewController在iPad上而不是在彈出窗口中呈現
activityViewController
此方法的默認實現返回
nil
。使用視圖控制器提供其他UI的子類可以重寫此方法以返回該視圖控制器。如果此方法返回有效對象,則系統會爲您呈現返回的視圖控制器,而不是調用performActivity
方法。在iPad上,您的視圖控制器顯示在彈出窗口中。在iPhone和iPod touch上,您的視圖控制器將以模態方式呈現。您的自定義視圖控制器應該爲您的自定義UI提供視圖,並且應該處理這些視圖內的任何用戶交互。完成該活動後,請勿自行解除視圖控制器。相反,請撥打
activityDidFinish:
方法,讓系統爲您解除它。
需要注意的是位在第一段落的末尾:在iPad上,你的視圖控制器提出了一種酥料餅的內部。在iPhone和iPod touch上,您的視圖控制器將以模態方式呈現。
但是,在iPad上,由activityViewController
返回的視圖控制器總是以模態方式顯示,無論我如何呈現UIActivityViewController(無論是通過模式還是通過彈出窗口)。當通過popover展示時,它會導致它崩潰,因爲它不認爲它已被解僱。
我在做什麼錯?這是iOS 6中的錯誤嗎?
更新:這是一個簡單的Xcode項目,說明問題。隨意克隆它和玩,看看你能看到我們要去哪裏錯了:github.com/simonwhitaker/GSActivityDemo
什麼是你的問題? – msgambel
這裏同樣的問題。我修改了原來的帖子以添加一個明確的問題,希望你不介意@Gujamin。 –
太寬泛,以不確定.... :(我可以開始瘋狂的猜測,但我寧願你編輯的問題,也許顯示一些代碼或這樣的! - 哦,你用弧? –