使用 SpriteKit 场景呈现 UIAlertController (Objective-C)
Present an UIAlertController with a SpriteKit scene (Objective-C)
我正在尝试制作一个 SpriteKit 应用程序,如果用户愿意,它有一个按钮可以转到我的网站。我认为发出警报(因为它是为 iOS 8 制作的,我会使用 UIAlertController
)确认他们是否想被重定向到 Safari 以查看它是一个很好的做法。
到目前为止,这是 make/present 此警报的方法代码:
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
可以在屏幕上显示自己的任何建议?谢谢!
一种方法是使用 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.
}
}
然后 post 从您想要显示警报的地方发送此通知。
NSNotificationCenter.defaultCenter().postNotificationName("showAlert", object: nil)
我正在尝试制作一个 SpriteKit 应用程序,如果用户愿意,它有一个按钮可以转到我的网站。我认为发出警报(因为它是为 iOS 8 制作的,我会使用 UIAlertController
)确认他们是否想被重定向到 Safari 以查看它是一个很好的做法。
到目前为止,这是 make/present 此警报的方法代码:
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
可以在屏幕上显示自己的任何建议?谢谢!
一种方法是使用 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.
}
}
然后 post 从您想要显示警报的地方发送此通知。
NSNotificationCenter.defaultCenter().postNotificationName("showAlert", object: nil)