我试图制作一个SpriteKit应用程序,如果用户愿意,可以使用按钮进入我的网站。我认为发出警报(因为它是为iOS 8制作的,我使用UIAlertController
)确认是否要重定向到Safari以查看它是一个好习惯。
以下是目前为止制作/提供此提醒的方法的代码:
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Go to website" message:@"Would you like to visit DannyDalton.com? This will open Safari." preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *yes = [UIAlertAction actionWithTitle:@"Yes" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action){
[self goToSite];
}];
UIAlertAction *no = [UIAlertAction actionWithTitle:@"No" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action){}];
[alertController addAction:yes];
[alertController addAction:no];
[alertController presentViewController:(UIViewController*)self animated:YES completion:nil];
我的问题是将alertController
呈现到视图控制器上,因此它会弹出。有关如何将SKView
变为UIViewController
以便alertController
可以在屏幕上显示的任何建议吗?谢谢!
答案 0 :(得分:3)
执行此操作的一种方法是使用NSNotification
。
在GameViewController
(包含SKView
)中添加NSNotification
观察者,以便在收到通知时调用该函数以显示警报。
class GameViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "showAlert:", name: "showAlert", object: nil)
}
func showAlert(object : AnyObject) {
// Your alert code.
}
}
然后从您要显示提醒的地方发布此通知。
NSNotificationCenter.defaultCenter().postNotificationName("showAlert", object: nil)