0

在我的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類中定義的函數?)

另外,我沒有根視圖控制器。

+0

請發佈錯誤 –

+0

@SouravSachdeva錯誤在ViewController類的viewDidLoad的第一個方法上調用(即使我註釋掉第一個,然後第二個一個會導致錯誤等)。在控制檯上記錄的錯誤是:「致命錯誤:在解包可選值(lldb)時意外發現零」雖然我的源代碼突出顯示了錯誤:「線程1:EXC_BAD_INSTRUCTION(代碼= EXC_1386_INVOP,子代碼= 0x0)」 – Jonas

+0

我認爲它與你的任何變量的值有關,你初始化了你最初存儲文本的變量的值,我認爲更好的方法是調試viewDidLoad()中所有變量的值,並檢查哪一個是無 –

回答

0

檢查故事板的價值,很有可能你會發現它;

storyboard.instantiateViewControllerWithIdentifier("PopMenuViewController") as! PopMenuViewController 

我想弄清楚如何呈現從自定義tableview單元格元素彈出。如果你認爲它比分享方法:)