所以我有一个显示x,y图形的ViewController,每个点都是一个编程的UIButton,当按下它时,它会显示一个警告。我想知道是否有可能使用3DTouch peek和pop在UIButton中用力按下,它会把你带到另一个视图。
发布于 2016-06-29 21:04:45
好的,首先你需要注册预览:
if traitCollection.forceTouchCapability == .available {
registerForPreviewing(with: self, sourceView: view)
}将委派添加到您的ViewController
class ViewController: UIViewController, UIViewControllerPreviewingDelegate {然后添加委托方法:
func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {
let stboard = UIStoryboard(name: "HomeScreen", bundle: nil)
guard let detailVC = stboard.instantiateViewController(withIdentifier: "DetailViewController") as? SecondVC else { return nil }
// 1
let pressedView = tappedView(location)
previewingContext.sourceRect = pressedView.frame
return detailVC
}
func previewingContext(_ previewingContext: UIViewControllerPreviewing, commit viewControllerToCommit: UIViewController) {
show(viewControllerToCommit, sender: self)
}在(1)中,因为你有第二个视图控制器的一个实例,所以你可以很容易地在这里传递数据。
我不知道你是如何管理你的按钮的,但是我有一个非常类似的场景(在屏幕上随机移动UIViews ),所以一旦在MainView中加载了一个视图,我就把它附加到一个视图数组中。
viewArray.append(newView)然后我创建了一个方法来检查我是否按下了
func tappedView(_ location: CGPoint) -> UIView{
var tappedVw = UIView()
for vw in viewArrays{
if vw.frame.contains(location){
tappedVw = vw as! UIView
}
}
return tappedVw
}希望这能有所帮助
https://stackoverflow.com/questions/35968392
复制相似问题