在我的iOS應用程序中,我有一個UIViewController ViewController,它呈現了部分由TableView組成的視圖。 UITableViewCells包含一個UISegmentControl。當UISegmentControl的valueHasChanged動作被調用時,我想呈現一個彈出窗口。這就是所謂的行動中的代碼:目前從UITableViewCell中彈出UIAlertController沒有UITableView
//Check that the text field isn't empty:
if self.TextField.text == "" {
self.Status.selectedSegmentIndex = 0
let viewController = ViewController()
viewController.alertStatusChangedForEmptyTextField(self)
}
這是彈出我已經來檢查,如果在相同的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);
}
我得到一個錯誤,在ViewController的viewDidLoad函數中彈出,但源自該函數中的showViewController方法調用(我知道因爲我已經嘗試僅註釋掉這最後一行,然後一切正常)。
如何從UITableViewCell中調用彈出窗口(ViewController)?很高興聽到涉及完全不同方法的建議(創建自定義UITableView子類?在TableViewCell類中定義的函數?)
另外,我沒有根視圖控制器。
請發佈錯誤 –
@SouravSachdeva錯誤在ViewController類的viewDidLoad的第一個方法上調用(即使我註釋掉第一個,然後第二個一個會導致錯誤等)。在控制檯上記錄的錯誤是:「致命錯誤:在解包可選值(lldb)時意外發現零」雖然我的源代碼突出顯示了錯誤:「線程1:EXC_BAD_INSTRUCTION(代碼= EXC_1386_INVOP,子代碼= 0x0)」 – Jonas
我認爲它與你的任何變量的值有關,你初始化了你最初存儲文本的變量的值,我認爲更好的方法是調試viewDidLoad()中所有變量的值,並檢查哪一個是無 –