簡體   English   中英

嘗試在取消分配時加載視圖控制器的視圖。 CoreSpotlight

[英]Attempting to load the view of a view controller while it is deallocating. CoreSpotlight

我將CoreSpotlight集成到我的應用程序中。 我希望用戶在Spotlight搜索中找到需要的信息,然后在Spotlight搜索中打開此信息后,在DetailViewController打開信息。 我做到了,聚光燈工作正常,但是當打開應用程序時,我看到此錯誤嘗試在取消分配時加載視圖控制器的視圖是不允許的,並且可能會導致未定義的行為(UIAlertController:0x1245a0560),盡管我沒有使用UIAlertController 我在AppDelegate函數中創建了一個函數,該函數調用UITableViewController的函數,該函數必須按索引打開對象。 但是它沒有出現。 showData() performSegueWithIdentifier("show", sender: nil)仍然存在錯誤, 原因:'Receiver()沒有標識符為'show'的segue 盡管我添加了segue(帶有顯示名稱),並且在我通常選擇單元格時可以使用。 請幫我。

    AppDelegate
  func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool {
        if userActivity.activityType == CSSearchableItemActionType {
            if let identifier = userActivity.userInfo?[CSSearchableItemActivityIdentifier] as? String {
                print(identifier)
                checkWord = identifier // checkWord is String

                let tableC = TableViewController()
                tableC.showData()

                return true
            }
        }
        return false
    }


  func showData() {
    let matchString = appDel.checkWord
    if mainArray.contains(matchString) {
        let ind = mainArray.indexOf(matchString)!

        let indexPathMain = NSIndexPath(forItem: ind, inSection: 0)
        print(indexPathMain)
        self.tableView.selectRowAtIndexPath(indexPathMain, animated: true, scrollPosition: UITableViewScrollPosition.None)

        performSegueWithIdentifier("show", sender: nil)
        print("Show data")
    }
}

如果您未實現willContinueUserActivityWithType或返回false,則表示iOS應該處理活動。 在這種情況下,它可以顯示UIAlertController。 因此,要消除此警告,請在此委托調用中為您的活動返回true:

func application(application: UIApplication, willContinueUserActivityWithType userActivityType: String) -> Bool { return true }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM