2009-12-06 108 views
0

我正在寫一個帶有UITableView的程序,並在導航欄中添加按鈕,這會導致編輯頁面。當你點擊表格中的一個項目時,一個視圖(rView)被推送到與該項目有關的信息中。這個視圖有一個編輯按鈕,也可以導向編輯頁面。有沒有一種方法可以在編輯頁面上爲done按鈕添加if語句,該語句顯示「如果parentViewController是要轉到rView的UITableView,否則popViewController?」我會假設有一種方法可以做到這一點,但我不確定這樣做的語法。由於如果parentViewContoller語句

回答

1

如果我理解正確的話,你有一個UINavigationController和推到它

  1. 一個UITableView
  2. 的「rViewController」(你不能把一個視圖,必須是一個控制器)
  3. 的「EditController」

但是有可能省略步驟2,您直接進入編輯屏幕。

現在,當最後一個控制器被彈出時,即使它不在堆棧上,也希望能夠總是轉到「rViewController」。

首先,parentViewController不是堆棧中的前一個控制器,而是UINavigationController本身,因此它與目前的問題無關。

要做到這一點的方法是通過NSArray顯式設置UINavigationController的viewControllers屬性。我沒有試過,但是這應該工作:

當用戶按下「添加」按鈕,而不是隻推編輯視圖控制器,做這樣的事情:

NSArray* stack = navigationController.viewControllers; 
navigationController.viewControllers = [stack arrayByAddingObject:rViewController]; 
[navigationController pushViewController:editController animated:YES]; 

(順便說一句,我建議不要使用像「rView」這樣的名稱,除非可能用於非常短暫的局部變量,比如在循環中。使用描述性名稱是Cocoa成語的一個重要組成部分,並且從長遠來看將對您有很大幫助。)