0

В моем приложении 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?)

Кроме того, у меня нет контроллера корневого представления.

+0

Просьба сообщить об ошибке –

+0

@SouravSachdeva Ошибка вызвана первым методом в моем представленииDidLoad для класса ViewController (даже если я прокомментирую первый, затем второй одна приведет к ошибке и т. д.). Ошибка, зарегистрированная на консоли: «Неустранимая ошибка: неожиданно найден nil при развертывании необязательного значения (lldb)». Пока мой исходный код подсвечивается с ошибкой: «Thread 1: EXC_BAD_INSTRUCTION (код = EXC_1386_INVOP, subcode = 0x0)» – Jonas

+0

Я думаю, что это связано с любым значением вашей переменной, вы инициализировали значение переменной, которую вы вначале сохраняете в тексте, я думаю, что лучший подход будет отлаживать значение всех переменных в viewDidLoad() и проверить, какой из них is nil –

ответ

0

проверить ценность раскадровки, есть хороший шанс, что вы найдете ее нуль;

storyboard.instantiateViewControllerWithIdentifier("PopMenuViewController") as! PopMenuViewController 

Я пытаюсь выяснить, как представить всплывающее окно из пользовательского элемента cellview tableview. Если вы поняли это, чем делитесь методом :)