我将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应该处理 Activity 。在这种情况下,它可以显示UIAlertController。因此,要消除此警告,请在此委托调用中为您的 Activity 返回true:
func application(application: UIApplication, willContinueUserActivityWithType userActivityType: String) -> Bool { return true}

关于ios - 尝试在取消分配时加载 View Controller 的 View 。 CoreSpotlight,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33012529/

10-14 21:01