Я новичок в быстром и XCode, поэтому, пожалуйста, простите меня, вероятно, действительно грязный код! При запуске моего кода я получаю следующее предупреждение: Предупреждения: Попытка представить, на котором уже представляяПредупреждение: UIAlertController уже представляет
Я уже проверил форум и нашел пост по поводу этого вопроса .... Я применил помощь предложила, как в :
if presentedViewController !== nil {
self.presentViewController(alertController, animated: true, completion: nil)
} else{
self.dismissViewControllerAnimated(false, completion: nil)
self.presentViewController(alertController, animated: true, completion: nil)
}
Однако, это все равно дает мне такое же предупреждение ... Поэтому я думаю, что, должно быть, я сделал что-то не так. Было бы здорово, если бы кто-то может помочь мне, пожалуйста :) Кроме того, если есть какие-либо предложения о том, как я могу «убрать» до моего кода оценили :)
import UIKit
class ViewController: UIViewController {
@IBOutlet var Label: UILabel!
@IBOutlet var ukFlag: UITextView!
@IBOutlet var movie: UITextView!
@IBOutlet var piano: UITextView!
@IBOutlet var book: UITextView!
@IBOutlet var dance: UITextView!
@IBOutlet var paint: UITextView!
@IBOutlet var row: UITextView!
@IBOutlet var envelope: UITextView!
@IBOutlet var dragon: UITextView!
@IBOutlet var instagram: UITextView!
func londonPuzzle(sender: UIPanGestureRecognizer) {
let translation = sender.translationInView(self.view)
sender.view!.center = CGPoint(x: sender.view!.center.x + translation.x, y: sender.view!.center.y + translation.y)
sender.setTranslation(CGPointZero, inView: self.view)
self.ifCollided()
}
func misleadOne(sender: UIPanGestureRecognizer) {
let translation = sender.translationInView(self.view)
sender.view!.center = CGPoint(x: sender.view!.center.x + translation.x, y: sender.view!.center.y + translation.y)
sender.setTranslation(CGPointZero, inView: self.view)
self.ifCollided()
}
func bestival(sender: UIPanGestureRecognizer) {
let translation = sender.translationInView(self.view)
sender.view!.center = CGPoint(x: sender.view!.center.x + translation.x, y: sender.view!.center.y + translation.y)
sender.setTranslation(CGPointZero, inView: self.view)
self.ifCollided()
}
func rosieProject(sender: UIPanGestureRecognizer) {
let translation = sender.translationInView(self.view)
sender.view!.center = CGPoint(x: sender.view!.center.x + translation.x, y: sender.view!.center.y + translation.y)
sender.setTranslation(CGPointZero, inView: self.view)
self.ifCollided()
}
func misleadTwo(sender: UIPanGestureRecognizer) {
let translation = sender.translationInView(self.view)
sender.view!.center = CGPoint(x: sender.view!.center.x + translation.x, y: sender.view!.center.y + translation.y)
sender.setTranslation(CGPointZero, inView: self.view)
self.ifCollided()
}
func misleadThree(sender: UIPanGestureRecognizer) {
let translation = sender.translationInView(self.view)
sender.view!.center = CGPoint(x: sender.view!.center.x + translation.x, y: sender.view!.center.y + translation.y)
sender.setTranslation(CGPointZero, inView: self.view)
self.ifCollided()
}
func misleadFour(sender: UIPanGestureRecognizer) {
let translation = sender.translationInView(self.view)
sender.view!.center = CGPoint(x: sender.view!.center.x + translation.x, y: sender.view!.center.y + translation.y)
sender.setTranslation(CGPointZero, inView: self.view)
self.ifCollided()
}
func voucher(sender: UIPanGestureRecognizer) {
let translation = sender.translationInView(self.view)
sender.view!.center = CGPoint(x: sender.view!.center.x + translation.x, y: sender.view!.center.y + translation.y)
sender.setTranslation(CGPointZero, inView: self.view)
self.ifCollided()
}
func welsh(sender: UIPanGestureRecognizer) {
let translation = sender.translationInView(self.view)
sender.view!.center = CGPoint(x: sender.view!.center.x + translation.x, y: sender.view!.center.y + translation.y)
sender.setTranslation(CGPointZero, inView: self.view)
self.ifCollided()
}
func hulk(sender: UIPanGestureRecognizer) {
let translation = sender.translationInView(self.view)
sender.view!.center = CGPoint(x: sender.view!.center.x + translation.x, y: sender.view!.center.y + translation.y)
sender.setTranslation(CGPointZero, inView: self.view)
self.ifCollided()
}
func ShowAlertWrong(){
let alertController = UIAlertController(title: "Sorry", message: " Guess again!", preferredStyle: .Alert)
let okAction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default) {
UIAlertAction in
self.ukFlag.center = CGPointMake(150, 225)
self.movie.center = CGPointMake(150, 225)
self.piano.center = CGPointMake(150, 225)
self.dance.center = CGPointMake(150, 225)
self.paint.center = CGPointMake(150, 225)
self.row.center = CGPointMake(150, 225)
self.envelope.center = CGPointMake(150, 225)
self.dragon.center = CGPointMake(150, 225)
self.instagram.center = CGPointMake(150, 225)
}
let resetAction = UIAlertAction(title: "Reset", style: UIAlertActionStyle.Default) {
UIALertAction in
self.ukFlag.center = CGPointMake(150, 225)
self.movie.center = CGPointMake(150, 225)
self.piano.center = CGPointMake(150, 225)
self.dance.center = CGPointMake(150, 225)
self.paint.center = CGPointMake(150, 225)
self.row.center = CGPointMake(150, 225)
self.envelope.center = CGPointMake(150, 225)
self.dragon.center = CGPointMake(150, 225)
self.instagram.center = CGPointMake(150, 225)
}
alertController.addAction(okAction)
alertController.addAction(resetAction)
self.presentViewController(alertController, animated: true, completion: nil)
}
func ShowAlertWin(){
let alertController = UIAlertController(title: "Congrats", message: " You are correct!", preferredStyle: .Alert)
let okAction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default) {
UIAlertAction in
self.book.center = CGPointMake(150, 150)
}
/* let resetAction = UIAlertAction(title: "Reset and hope the mood has changed", style: UIAlertActionStyle.Default) {
UIALertAction in
self.Angry.center = CGPointMake(150, 150)
}*/
alertController.addAction(okAction)
// alertController.addAction(resetAction)
if presentedViewController !== nil {
self.presentViewController(alertController, animated: true, completion: nil)
} else{
self.dismissViewControllerAnimated(false, completion: nil)
self.presentViewController(alertController, animated: true, completion: nil)
}
}
@IBAction func ifCollided(){
if CGRectIntersectsRect(Label.frame, ukFlag.frame) {
ShowAlertWrong()
}
else if CGRectIntersectsRect(Label.frame, movie.frame){
ShowAlertWrong()
} else if CGRectIntersectsRect(Label.frame, piano.frame){
ShowAlertWrong()
} else if CGRectIntersectsRect(Label.frame, dance.frame){
ShowAlertWrong()
} else if CGRectIntersectsRect(Label.frame, paint.frame){
ShowAlertWrong()
} else if CGRectIntersectsRect(Label.frame, row.frame){
ShowAlertWrong()
} else if CGRectIntersectsRect(Label.frame, envelope.frame){
ShowAlertWrong()
} else if CGRectIntersectsRect(Label.frame, dragon.frame){
ShowAlertWrong()
} else if CGRectIntersectsRect(Label.frame, instagram.frame){
ShowAlertWrong()
} else if CGRectIntersectsRect(Label.frame, book.frame){
ShowAlertWin()
}
}
override func viewDidLoad() {
super.viewDidLoad()
ukFlag.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(self.londonPuzzle(_:))))
movie.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(self.misleadOne(_:))))
piano.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(self.bestival(_:))))
book.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(self.rosieProject(_:))))
dance.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(self.misleadTwo(_:))))
paint.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(self.misleadThree(_:))))
row.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(self.misleadFour(_:))))
envelope.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(self.voucher(_:))))
dragon.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(self.welsh(_:))))
instagram.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(self.hulk(_:))))
}
}
эй, спасибо за Ваш ответ! Он работает, однако, похоже, окно предупреждения появляется дважды очень быстро ... Я попытался исправить это, но я не уверен, как ... ему что-то нужно с ним входить в цикл дважды или что-то в этом роде? – CatiaV5
Я не понимаю, что вы пытаетесь сказать, можете ли вы объяснить немного больше? –
, если я перетаскиваю соответствующий символ на метке, тогда окно предупреждения открывается дважды подряд подряд (т. Е. Предупреждение «неправильное» всплывает, выключается и снова всплывает очень быстро). действительно ли мое объяснение имеет больше смысла? это очень сложно объяснить ... он просто открывается, закрывается и быстро открывается – CatiaV5