Как сделать так, чтобы модальное представление появилось вне контроллера?

Я пытаюсь запрограммировать небольшую игру, чтобы применить концепции, которые я узнал в этом курсе сам. Когда игра открывается, я хотел бы для пользовательского модального представления, чтобы рассказать пользователю, как играть. Аналогично, когда они проигрывают, я хочу представить страницу результатов, которая была бы внутри оператора if. Я искал по всему интернету, и я не могу найти способ, чтобы отобразить эти представления без ошибки. Все, что это видео показывает, как показать отображение представления, когда кнопка нажата; как я отображаю пользовательский модальный вид по команде в коде? (Я очень новичок в Swift, поэтому постарайтесь выразить это в непрофессиональных терминах.) Спасибо!

import UIKit
var numberValue = 0
let randomInt = getRandomNumber()

class ViewController: UIViewController {
    @IBOutlet weak var buttonLabel: UILabel!


    override func viewDidLoad() {
        super.viewDidLoad()
        let vc = self.storyboard?.instantiateViewControllerWithIdentifier("HowToPlayView") as! HowToPlay

self.presentViewController(vc, animated: true, completion: nil)
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.
    }





    @IBAction func buttonPressed() {
        numberValue += 1
        updateButtonValue(buttonLabel)
    }



}


    @IBAction func buttonPressed() {
        numberValue += 1
        updateButtonValue(buttonLabel)
    }



}

Это мой контроллер вида. Ошибка получения: поток 1: EXC_BAD_ACCESS

Мой взгляд в интерфейсе и соединениях

Введите описание изображения здесь

1 ответ

  1. Хорошо, давайте попробуем другой подход к решению этой проблемы. Над вашим ViewController вы должны увидеть три различных кнопки, как это: Введите описание изображения здесь

    Нажмите на первую кнопку и Ctrl + перетащите на вид, который вы хотите отобразить и выберите Показать модально. После этого вы увидите, как появится эта стрелка: Введите описание изображения здесь

    Это называется сегментом от первого представления до второго представления, и вы можете вызвать это в своем коде для перехода от одного представления к следующему, но Сначала мы должны дать нашему сегменту идентификатор. Вы можете сделать это, нажав на стрелку и окно должно прийти, как это:
    Введите описание изображения здесь

    Как вы можете видеть, вам придется заполнить поле идентификатора, и в моем случае я просто назвал его «myAwesomeSegue».

    Наконец, в первом ViewController запустите этот код, когда вам нужно представить следующий контроллер представления:

    performSegueWithIdentifier("myAwesomeSegue", sender: nil)
    

    Обратите внимание, что если вы используете этот метод, просто удалите предыдущий код, который у вас был раньше, так как это совершенно новый подход (поэтому в основном удалите этот код):

    let vc = self.storyboard?.instantiateViewControllerWithIdentifier("HowToPlayView") as! HowToPlay
    
    self.presentViewController(vc, animated: true, completion: nil)
    

    Окончательный код для firstViewController:
    Введите описание изображения здесь