Я пытаюсь открыть всплывающее окно для своего приложения. До сих пор всплывающее окно всплывает с фиксированной координатой, я пытаюсь заставить его всплывать в точке, где пользователь нажал. Вот что у меня есть:
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
print("touchesbegan")
for touch in touches{
//Handle touch
let location = touch.locationInView(self.view)
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("ColonyPopoverController") as! ColonyPopoverController
vc.modalPresentationStyle = .Popover
vc.preferredContentSize = CGSizeMake(200, 150)
if let popoverController = vc.popoverPresentationController {
popoverController.delegate = self
popoverController.sourceRect = CGRectMake(location.x, location.y, 20, 10)
popoverController.sourceView = self.view
self.presentViewController(vc, animated: true, completion: nil)
}
}
}
Я заметил, что оператор печати никогда не печатается, когда я нажимаю на симулятор.
В моем представлении включены interaction
и multi-touch
. Я знаю, что это работает нормально, потому что я также интегрировал его с Google Maps, поэтому, когда я нажимаю, появляется булавка Google:
func mapView(mapView: GMSMapView!, didTapAtCoordinate coordinate: CLLocationCoordinate2D) {
print("You tapped at \(coordinate.latitude), \(coordinate.longitude)")
let marker = GMSMarker()
marker.position = CLLocationCoordinate2DMake(coordinate.latitude, coordinate.longitude)
marker.title = "Sydney"
marker.snippet = "Australia"
marker.map = mapView
}
и я также вижу печать операторов печати. Не уверен, что мне здесь не хватает.
Взаимодействие с пользователем включено как для суперпредставления, так и для представления: