2012-07-29 73 views
0

所以我見過類似的問題,但他們沒有幫助。我也讀過Apple的文檔,但我無法理解我出錯的地方。 AFAIK我做了一切合乎邏輯的事情,但是當我點擊UIToolbar疊加層上的完成按鈕時,可以按下按鈕,但它不會執行任何操作。這顯然意味着它無法確認書面代碼。但是如何?從UIBarButtonItem創建nib視圖?

我想在我的UIToolbar上單擊完成按鈕時調出「TableViewController」的.nib。但下面的內容不允許點擊來創建新視圖。我該如何糾正這一點?請告訴我我錯在哪裏,應該替換什麼以及爲什麼。

//Here's the selector: 
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: 
    UIBarButtonSystemItemDone target:self action:@selector(doneButtonPressed)]; 

下面是我做了我的動作。

-(void)doneButtonPressed { 
    TableViewController *tableView = [[TableViewController alloc] 
     initWithNibName:@"TableViewController" bundle:nil]; 
    tableView.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
    [self presentModalViewController:tableView animated:YES]; 
} 

// Yet nothing happens when I click on my done button on my overlay. The button 
// can be clicked, but nothing happens. Please shed any insight pleasee! 
+1

您可能想要診斷問題是按鈕還是方法,因此請在'doneButtonPressed'中放置一個斷點(或NSLog),並確定該方法是否正在調用,而不是按照您的預期進行,或者是否未調用在所有。然後,您可以將您的診斷工作集中在正確的領域。 (順便說一下,我假設bar按鈕和'doneButtonPressed'方法的初始化都在視圖控制器中,而不是在某個自定義視圖類中。) – Rob 2012-07-29 21:15:29

+0

感謝輸入,它被調用,但是和以前一樣沒有任何操作。 – 2012-07-30 02:04:13

+0

好的,如果我們知道'doneButtonPressed'是絕對被調用的,那麼關於bar按鈕的所有東西都是不相關的。事情是,你的'doneButtonPressed'沒有什麼奇怪的。我假設你已經開始在'initWithNibName'(假設你有一個)和'TableViewController'的'viewDidLoad'中放入日誌語句/斷點?而你說「什麼也沒有發生」,你沒有看到一張空白的桌子,而是從字面上看沒有任何事情發生,即你看到的屏幕和以前一樣?此時,如果您需要幫助,我們可能需要開始查看相關的「TableViewController」代碼。 – Rob 2012-07-30 02:25:13

回答

0

您是否將UIToolbar創建爲筆尖文件?

+0

不,它是UIIMagePickerController的疊加層。我以編程方式編寫。 – 2012-07-29 22:24:29