[英]UITableView delegate is not getting called
我在菜單抽屜中使用UITableView
,並在單擊菜單按鈕時更改UITableView的位置。
UITableViewDataSource
在工作, UITableViewDelegate
在工作。 我從故事板設置了委托,並且在視圖控制器內部仍未調用didSelectRowAtIndexPath
。
-(void) showMenu{
isMenuShown = YES;
[_drawerButton setImage:[UIImage imageNamed:@"v_drawer_menu"]];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
self.view.frame = CGRectMake(220, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height);
_tableView.frame = CGRectMake(0, self.view.frame.origin.y, 220, self.view.frame.size.height);
self.menuView.frame = CGRectMake(0, self.view.frame.origin.y, 220, self.view.frame.size.height);
_menuView.userInteractionEnabled = YES;
_tableView.userInteractionEnabled = YES;
_tableView.delegate = self;
[UIView commitAnimations];
}
幫助表示贊賞。
問題解決了,
我正在移動基本視圖,因此所有交互都在x位置從220開始的基礎上進行,因此表視圖交互不起作用,我在情節bringSubviewToFront
更改了視圖層次結構,並使用了bringSubviewToFront
視圖方法使其正常工作。
謝謝 :)
如果didSelectRowAtIndexPath
沒有得到,則可能是以下原因之一。
UIView
。 allowsSelectionDuringEditing
是flase
。 您需要檢查幾件事:
如果我們已經從其他視圖控制器復制了tableview,那將發生一段時間,而委托和數據源鏈接將已經存在,但指向該舊視圖控制器。 因此需要刪除鏈接並再次建立連接
還要確保您沒有將UITableViewDelegate協議放入.h文件中,因為您已經在情節提要板上進行了鏈接
如果仍然無效,則清理項目並刪除委托方法,然后將光標放在UITableview上,然后按窗口鍵。 您將被重定向到tableview的委托方法頁面,並從中復制委托方法並將其放置在代碼中。
(注意:請勿從任何地方復制委托方法,這是直接從委托部分頁面直接復制委托的良好做法)。
希望這可以幫助您解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.