В моем приложении iOS у меня есть UIViewController ViewController, представляющий представление, частично составленное из TableView. UITableViewCells включает UISegmentControl. Когда вызывается действие valueHasChanged действия UISegmentControl, я хочу представить всплывающее окно. Это код вызывается в действии:Нынешний всплывающий UIAlertController из UITableViewCell без UITableView
//Check that the text field isn't empty:
if self.TextField.text == "" {
self.Status.selectedSegmentIndex = 0
let viewController = ViewController()
viewController.alertStatusChangedForEmptyTextField(self)
}
Это всплывающий я создал в классе ViewController, который проверяет, если соседнее текстовое поле в том же UITableViewCell пусто или нет:
//Alert function that handles when toggle is set even though there is no content.
func alertStatusChangedForEmptyTextField(sender: AnyObject) {
let alert = UIAlertController(title: "Text field has no contents", message: "Please enter a text.", preferredStyle: UIAlertControllerStyle.Alert);
alert.addAction(UIAlertAction(title: "Ok", style: UIAlertActionStyle.Cancel, handler: nil));
showViewController(alert, sender: self);
}
Я получаю сообщение об ошибке, которое появляется в функции viewDidLoad ViewController, но происходит из вызова метода showViewController внутри этой функции (я знаю, потому что я пробовал комментировать только эту последнюю строку, а затем все работает нормально).
Как я могу вызвать всплывающее окно (ViewController) из UITableViewCell? Приятно слышать предложения, связанные с совершенно разными подходами (создание пользовательского подкласса UITableView? Функция, которая определена в классе TableViewCell?)
Кроме того, у меня нет контроллера корневого представления.
Просьба сообщить об ошибке –
@SouravSachdeva Ошибка вызвана первым методом в моем представленииDidLoad для класса ViewController (даже если я прокомментирую первый, затем второй одна приведет к ошибке и т. д.). Ошибка, зарегистрированная на консоли: «Неустранимая ошибка: неожиданно найден nil при развертывании необязательного значения (lldb)». Пока мой исходный код подсвечивается с ошибкой: «Thread 1: EXC_BAD_INSTRUCTION (код = EXC_1386_INVOP, subcode = 0x0)» – Jonas
Я думаю, что это связано с любым значением вашей переменной, вы инициализировали значение переменной, которую вы вначале сохраняете в тексте, я думаю, что лучший подход будет отлаживать значение всех переменных в viewDidLoad() и проверить, какой из них is nil –