在我的表格视图中选择一行时,我正在展示一个 Safari 视图控制器。完成 Safari 视图控制器后,我按下完成按钮,它会返回我的表格视图。当我向右滑动以关闭 Safari 视图控制器时,我遇到了问题。如果我滑动关闭而不是按下完成,我仍然可以滚动我的表格视图并重新加载它,但我无法选择一行。我的理解是,如果 Safari 视图控制器仍然存在,则在第一个视图控制器真正消失之前无法呈现另一个视图控制器。似乎这可能是导致问题的原因。如何使滑动以关闭 Safari 视图控制器实际上摆脱了呈现的控制器?
func safariViewControllerDidFinish(controller: SFSafariViewController) {
controller.dismissViewControllerAnimated(true, completion: nil)
}
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
var linkString = posts.objectAtIndex(indexPath.row).valueForKey("link") as? String
linkString = linkString!.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLQueryAllowedCharacterSet())
linkString = linkString?.stringByReplacingOccurrencesOfString("%09%09", withString:"")
let url = NSURL(string: linkString!)
let safariVC = SFSafariViewController(URL: url!, entersReaderIfAvailable: true)
safariVC.delegate = self
let kfbBlue = UIColor(red: 8.0 / 255.0, green: 77.0 / 255.0, blue: 139.0 / 255.0, alpha: 1.0)
safariVC.view.tintColor = kfbBlue
self.presentViewController(safariVC, animated: true, completion: nil)
}