我的應用程序工作正常,沒有3Dtouch實施;但隨着3Douch添加應用程序繼續工作很好,並正常旋轉,直到使用3D觸摸(偷看或流行);我有一個tableViewCell處理偷看/流行和預覽委託。演示將做兩次,並在控制檯中觸發:@「警告:試圖提出在已經呈現(空)3dtouch嘗試呈現*上已*呈現(null)
0
A
回答
0
我經歷過同樣的問題,它的原因是你在cellForRowAtIndexPath
登記表視圖細胞
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// myTableViewCell is created or reused here
...
registerForPreviewingWithDelegate(self, sourceView: myTableViewCell)
...
}
。這會導致單元格被多次註冊,當它被表格視圖重新使用時。但是多次註冊相同的視圖registerForPreviewingWithDelegate
不被允許,並導致您描述的警告和旋轉問題。
您可以指定多個源查看單個註冊 視圖控制器,但你不能指定一個視圖作爲源 視圖不止一次。
解決方案很簡單。在第二次註冊之前檢查視圖是否已經註冊,如果需要取消註冊。
private var previewingContexts = [MyTableViewCellClass: UIViewControllerPreviewing]()
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
// myTableViewCell is created or reused here
...
if let previewingContext = previewingContexts[myTableViewCell] {
unregisterForPreviewingWithContext(previewingContext)
}
let previewingContext = registerForPreviewingWithDelegate(self, sourceView: myTableViewCell)
previewingContexts[myTableViewCell] = previewingContext
...
}
您也可以使用下面介紹的方法: http://krakendev.io/peek-pop/ 這將使用它傳遞給委託找出哪個電池拍了拍location
參數。這樣你只需註冊整個表格視圖,而不是每個單元格。這可能是一個更好的解決方案。在我的情況下,這是不可能的,因爲我在tableview單元格內嵌套了集合視圖,所以它更復雜。
相關問題
- 1. 嘗試呈現哪個已經呈現
- 2. 嘗試在ViewController上呈現UIViewController,它已經呈現UIAlertController
- 3. 嘗試在*上呈現*(已存在)(空)
- 4. 「嘗試呈現時已呈現」仍然顯示在檢查後?
- 5. 嘗試呈現<JSSAlertView.JSSAlertView ...它已經呈現
- 6. 試圖在已經呈現的視圖控制器上呈現UIAlertController(空)[Swift]
- 7. 警告:嘗試在<UIViewController:0x7b9cac00>上呈現<UIImagePickerController:0x7ca5dc00>,它已經呈現(空)
- 8. 警告:嘗試呈現<MFMailComposeViewController: - Swift
- 9. UIViewController嘗試以模態呈現
- 10. 測試React組件是否已呈現
- 11. Swift - 警告:嘗試在已呈現<UIAlertController>
- 12. ASP.NET:主後呈現的內容已經呈現
- 13. 上呈現變化
- 14. 嘗試在ASP MVC中呈現PartialView時出現問題3
- 15. 嘗試呈現查詢中的值後出現java.lang.NumberFormatException
- 16. Rails:嘗試呈現按鈕上的部分點擊
- 17. 呈現UIPageViewController與模態呈現風格
- 18. 即時呈現,呈現視圖
- 19. 按鈕呈現時呈現HTML/ASP.NET
- 20. 從命令行呈現R呈現
- 21. UIPrintPageRenderer呈現爲PDF(字體呈現)
- 22. 紋理呈現灰色時呈現
- 23. Rails 3 - 呈現JSON後呈現JS
- 24. 如何調試CSS3呈現?
- 25. 嘗試通過電子郵件呈現ASP.NET頁面的呈現內容時ScriptManager出現問題
- 26. 在視圖上呈現多個事件呈現
- 27. 角2上的HTML呈現
- 28. 在Iphone上呈現HTML
- 29. 在iPhone上呈現波形
- 30. 在inputText上呈現屬性