Это название, вероятно, не подходит, поскольку я понятия не имею, как его называть.Вызов функции в другом UIViewController
class OneViewController: UIViewController
{
@IBAction func someFunc(sender: AnyObject)
{
displayAlertMessage(someString)
}
func displayAlertMessage(alertMessage: String)
{
let alert = UIAlertController(title, message, preferredStyle);
let dismissAction = UIAlertAction(title, style, handler);
alert.addAction(dismissAction);
self.presentViewController(alert, animated, completion);
}
}
}
Так выше структура будет работать, но с тем, как я делаю вещи, displayAlertMessage будет излишним в других представлениях. Поэтому я хочу переместить его в свой класс.
class OneViewController: UIViewController
{
@IBAction func someFunc(sender: AnyObject)
{
AlertMessageViewController().displayAlertMessage(someString)
}
}
class AlertMessageViewController: UIViewController {
func displayAlertMessage(alertMessage: String)
{
let alert = UIAlertController(title, message, preferredStyle);
let dismissAction = UIAlertAction(title, style, handler);
alert.addAction(dismissAction);
self.presentViewController(alert, animated, completion);
}
}
Но, конечно, я получаю сообщение об ошибке говорящее
Предупреждение: Попытка представить на , чье мнение не в окне иерархии!
Итак, из моего понимания, я предполагаю, что произошла ошибка, поскольку AlertMessageViewController не привязан ни к чему? Поэтому я считаю, что могу создать еще один UIViewController, а затем связать их. Но затем каждый раз, когда я хочу отображать предупреждающее сообщение, он переключит представления вместо всего лишь небольшого окна. Как мне это сделать?
Итак, подождите, какой класс AlertMessageViewController сейчас? Почему AlertViewMessageController.displayAlertMessage работает без скобок? Как и в AlertViewMessageController(). DisplayAlertMessage. Из-за этого сейчас статично? – fossdeep
Я просто пытаюсь следовать вашему подходу, чтобы изолировать код, представляющий сообщение, в UIAlertController. Я добавляю статику в функцию, поэтому вам не нужно создавать экземпляр AlertMessageViewController. Я бы назвал класс AlertMessageViewControllerUtils вместо AlertMessageViewController. Это просто класс, расширяющий все. –
Это просто класс, расширяющий ничего ... –