2015-03-19 62 views
1

我試圖在單擊表格視圖單元格中的按鈕時使用SCLAlertView庫來顯示警報視圖。我從我的tableviewcell.m呈現這樣的:從UITableViewCell呈現UIViewController:addChildViewController發送到實例的無法識別的選擇器

- (IBAction)showSuccess:(id)sender { 
    SCLAlertView *alert = [[SCLAlertView alloc] init]; 

    [alert addButton:@"First Button" target:self selector:@selector(firstButton)]; 

    [alert addButton:@"Second Button" actionBlock:^(void) { 
     NSLog(@"Second button tapped"); 
    }]; 

    [alert showSuccess:self title:@"test" subTitle:@"test" closeButtonTitle:@"test" duration:0.0f]; 
} 

但是,當我點擊按鈕的應用程序崩潰,並給了我這個錯誤:

[TableViewCell addChildViewController:]: unrecognized selector sent to instance 0x126e1bc90 

這也給了我這個警告對行,我居然顯示警報:

Incompatible pointer types sending 'TableViewCell *' to parameter of type 'UIViewController *' 

我猜我無法顯示我的表視圖單元格視圖控制器,但我怎麼能解決這個問題?

回答

2

您必須將該單元格的父視圖控制器添加爲childViewController。

因此,在單元格中添加委託,將其附加到TableViewController中,然後從單元委託觸發時調用TableViewController中的警報。

+0

無法正常工作。下面是我現在這樣做的:首先我在表格視圖單元格文件中創建一個委託協議,其內部包含: - (void)showAlertView;然後,在父視圖控制器中,將委託添加到.h文件中,並在.m文件中寫入了警報視圖的實際代碼。然後我回到表格視圖單元格.m文件,然後showAlertView方法應該如下所示:[_delegate showAlertView] ;.對?或者我做錯了什麼? – tracifycray 2015-03-19 11:59:45

+1

填充tableview時你是否將委託設置爲單元格? cellForRowAtIndexPath中的cell.delegate = self? – 2015-03-19 12:02:06

+0

謝謝你,那是解決方案:) – tracifycray 2015-03-19 12:03:34

相關問題