2012-09-01 71 views
0

一個的.xib我想實現的UITableView的數據源方法一個UIView:創建與UITableView中的footerView

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section 

我已經在代碼中這樣做,它的工作原理。如果可能的話,我希望能夠在IB中完成更復雜的佈局。首先,我添加了一個UISegmentedControl和一個UIButton。我的數據源方法如下所示:

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { 
    // Footer should just be on the last section in the grouped table. 
    if (section == kNotesSection) { 
     UINib *nib = [UINib nibWithNibName:@"DetailFooterView" bundle:nil]; 
     NSArray *views = [nib instantiateWithOwner:self options:nil]; 
     UIView *nibView = [views objectAtIndex:0]; 
     [nibView addGestureRecognizer:tapGesture]; 

     return nibView; 
    } 
    else { 
     return nil; 
    } 
} 

我能夠在TableView底部看到我的頁腳視圖。但是,沒有用戶交互發生。我點擊按鈕,我沒有看到任何事情發生。所以我的第一個問題是,這是正確的方法嗎?

第二個問題,我如何將目標/動作配對與.xib相關聯,因爲我沒有插件或動作連接到.xib,就像我通常使用典型的UIViewController + .xib模板一樣。這是我第一次嘗試以這種方式使用分離的xib,並不確定這些細節。謝謝!

+0

你最好添加目標AMD動作編程... – 2012-09-01 05:45:47

回答

0

這樣做:

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { 
    // Footer should just be on the last section in the grouped table. 
    if (section == kNotesSection) { 

    UIView *nibView = [[[NSBundle mainBundle] loadNibNamed:@"DetailFooterView" owner:self options:nil] objectAtIndex:0]; 
    [nibView setUserInteractionEnabled:YES]; 
    [nibView addGestureRecognizer:tapGesture]; 
    return nibView; 

    else { 
    return nil; 
    } 
} 
+0

它仍然無法正常工作。我看到之前看到的相同觀點,沒有用戶互動發生。 .xib本身的用戶交互設置爲YES。我不確定是否還有其他事情需要我在身份檢查員或類似的事情上做。 – Crystal