我想窥视一个视图控制器,它只有一个ImageView和一些标签,但当用户按下更难时,他们会弹出到ViewController,他们通常会已经有用户只需点击表格视图单元格!Peek ViewController但弹出一个不同的ViewController - 三维Touch - Swift
我遇到的问题是viewControllerToCommit没有索引路径,我无法确定传递给新View Controller的内容。这是我的代码至今:
func previewingContext(_ previewingContext: UIViewControllerPreviewing, commit viewControllerToCommit: UIViewController) {
let popViewController = self.storyboard?.instantiateViewController(withIdentifier: "ReadArticleViewController") as! ReadArticleViewController
popViewController.storyURL = //This is where i need to be able to get the index path so i can extract the url for the webview
self.show(popViewController, sender: self)
}
func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {
guard let indexPath = tableView.indexPathForRow(at: location) else {return nil}
let cell = tableView.cellForRow(at: indexPath) as! ArticleCell
let previewViewController = self.storyboard?.instantiateViewController(withIdentifier: "PeekViewController") as! PeekViewController
previewViewController.storyImage = cell.pictureView.image
previewViewController.storyTitle = cell.titleLabel.text
previewViewController.preferredContentSize = CGSize(width: view.frame.width, height: 300)
previewingContext.sourceRect = cell.frame
return previewViewController
}
我明白了,viewControllerToCommit中的信息包含我已经存储在previewViewController中的属性?我尝试使用viewControllerToCommit.storyImage,那里没有任何东西,因为它在我看来是错误的?我是否了解你> – Eli
你不能说'viewControllerToCommit.storyImage'。你必须对它真正的课程进行研究。如果这是一个PeekViewController,你会说'(viewControllerToCommit as!PeekViewController).storyImage'。 – matt
作品魅力!谢谢 :) – Eli