2012-01-25 41 views
1

我有一個導航視圖控制器,它在一些tableviews之間導航,我剛剛在其中一個表格的單元格內添加了一個「編輯」按鈕。我想要發生的事情是,用戶可以點擊單元格內的編輯按鈕,導航控制器可以跨越一個新的視圖進行分流,在該視圖中,所有單元格的內容都是爲了便於編輯而佈局的。從單元格的視圖控制器推動導航控制器的新視圖

但是,單元無法訪問導航控制器,無法將新視圖控制器推入其堆棧。我該怎麼做我想要的?

請注意,我沒有使用塞格斯和故事,因爲它是一箇舊的應用程序,我想繼續支持運行iOS 4設備

回答

1

你應該按鈕的目標設定爲已經在棧上的UIViewController ?

+0

我不知道你能做到這一點。我嘗試了它,並崩潰了應用程序使用此行時,單元格由tableview控制器創建...'[cell.editButton addTarget:self action:@selector(pressEditButton :) forControlEvents:UIControlEventTouchUpInside];' –

+0

沒關係。我犯了一個愚蠢的錯誤,現在正在工作。多謝。 –

+0

很高興我能幫到你。使viewcontroller處理動作等是一個好主意,而不是像單元或視圖這樣的元素。特別是當涉及到導航時。 –

0

我不知道,如果你想這樣,但你可以嘗試:

// In action method for edit button 
- (void)editButtonClicked { 
    EditViewController *editViewController = [[EditViewController alloc] initWithNibName:nil bundle:nil]; 
[self.navigationController pushViewController:editViewController animated:YES]; 
[editViewController release]; 
} 
1

如果不希望這個新的視圖添加到導航(棧),只需使用PresentModalViewController

// In action method for edit button 
- (void)editButtonClicked { 
    EditViewController *editViewController = [[EditViewController alloc] initWithNibName:@"EditViewController" bundle:nil]; 
[self.navigationController presentModalViewController:editViewController animated:YES]; 
[editViewController release]; 
} 
+0

在我的情況下,「自我」是按鈕所在的單元格,它無法訪問navigationController。 –

+0

如果你沒有在你的應用中實現NavigationController,那麼從語法中刪除navigationController。你將能夠打開一個新的view.Hope這將解決你的問題。否則,在這裏放一些代碼,你實際上是在視圖Transitions中做的。 –

+0

該navcontroller已實施。問題在於按鈕和代碼位於表格單元格中。我可以從表格本身訪問navcontroller,但單元格是低一級的,不知道它。 –

相關問題