2015-06-13 54 views
0

我嘗試使用下面的代碼段接線的今天擴展到我的應用程序:self.extensionContext .openURL開放的應用程序,但喚不回方法

override func tableView(tableView: UITableView, accessoryButtonTappedForRowWithIndexPath indexPath: NSIndexPath) { 
    let selection=busCollection[indexPath.row]; 
    let palina=selection?.palina; 
    let urlAsString = "widget://pathto/" + "\(palina)" 
    let url = NSURL(string: urlAsString) 
    self.extensionContext!.openURL(url!, completionHandler: { (success: Bool) -> Void in 
      print("completed") 
     } 
    ) 
    tableView.deselectRowAtIndexPath(indexPath, animated: false) 
} 

然而,激活該方法正確打開我的應用程序,但無需撥打電話即可以標準方式啓動:

-(BOOL) application:(UIApplication *)application handleOpenURL:(NSURL *)url 

可能是什麼問題?當然,我在info.plist文件上註冊了我的小部件,否則應用程序可能甚至不會被打開。

+0

你在AppDelegate中實現了'application:openURL:sourceApplication:annotation:'方法嗎? – Bannings

+0

當然,即使我用它接收方向請求。我讀的源代碼提示它是: - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url被擴展名調用。 無論如何,它們都不會被調用,因爲我在每個中都放置了斷點,以防萬一。 –

回答

0

它確實最終調用委託方法。

相關問題