2010-09-05 211 views
3

我一定在做傻事,但我看不到:我的導航的編輯按鈕被按下時,我的UITableViewController子類永遠不會被調用。爲什麼我的UITableViewController的setEditing:animated:方法沒有被調用?

可能是什麼原因造成的?

我的視圖層次結構是從一個Nib文件加載並放入彈出窗口中。 [+]按鈕連接到我的UITableViewController子類的insertNewObject操作。它工作正常。

但是[編輯]按鈕沒有連接的動作。該文檔說它會自動調用視圖控制器的setEditing:animated:方法,我重寫。

nib文件的設置幾乎和往常一樣AFAICT。事實上,我不確定我可以提供什麼額外的細節會提示我的錯誤。

點擊[編輯]按鈕到撥打setEditing:animated方法的控制流程是什麼?

回答

0

我覺得我們必須錯過同樣的事情。

無論如何,我通過做以下工作使其工作。

IBOutlet UIBarButtonItem *editButton; 

-(IBAction)editButtonPressed:(id)sender { 
    [self setEditing:YES animated:YES]; 
} 

- (void)setEditing:(BOOL)editing animated:(BOOL)animate 
{ 
    if(self.tableView.isEditing) 
    { 
     self.editButton.style = UIBarButtonItemStylePlain; 
     self.editButton.title = @"Edit"; 
    } 
    else 
    { 
     //self.editButton.style = UIBarButtonSystemItemDone; 
     self.editButton.style = UIBarButtonSystemItemEdit; 
     self.editButton.title = @"Done"; 
    } 

    // Toggle table view state 
    [super setEditing:!self.tableView.isEditing animated:animate]; 
} 

我迷上了editButton多達我添加到導航欄的按鈕,它的作用在editButtonPressed IBAction爲。這樣做後,我的setEditing:被調用(顯然),超級調用切換表視圖的編輯狀態。

我想使用系統定義的按鈕樣式,但適當的一個被註釋掉,因爲雖然它改變了樣式我不知道如何將文本從「編輯」更改爲「完成」,所以我必須手動完成所有操作(只有當我將按鈕作爲「自定義」並將其樣式設置爲一般時才起作用)。這具有不被本地化(免費)的缺點,等等。

相關問題