2014-10-06 26 views
0

例如,我有3次:可以檢查從哪個viewcontroller繼續做某事?

  • SaveContactView(TableView中 - 可編輯)
  • DetailedContactView(視圖 - 只顯示)
  • ListContactView(TableView中 - 顯示列表)

ListContactView包含動態客戶記錄。點擊單元格將繼續到DetailedContactView。

ListContactView包含'add'按鈕,它繼續保存到SaveContactView。

當用戶保存時,SaveContactView將轉到DetailedContactView。

DetailedContactView,用戶可以 '編輯',並回到SaveContactView

這是我的問題:
ListContactView到DetailedContactView OR SaveContactView到DetailedContactView
在viewDidLoad中就DetailedcontactView是它可以調用不同方法/功能何時來自某種觀點?

我不想創建一些冗餘的額外重複「相似」的看法。那麼有沒有最好的方法?

+0

設置一個屬性,如指示源的布爾值 – Paulw11 2014-10-06 10:32:37

+0

它們是視圖控制器,而不是視圖。 – duci9y 2014-10-06 11:01:20

+0

是的,我的錯誤,其視圖控制器 – specialone 2014-10-06 11:02:41

回答

2

您可以簡單地在您的DetailedContactViewviewDidLoad中應用支票,該支票是此視圖的父母。 如果您使用push segue,請在UINavigationControler stack中檢查此視圖控制器的父視圖控制器。

如果您是modally presentDetailedContactView然後找到[self presentingViewController]並採取適當的措施。

或者從最後一頁設置一個標誌來區分父母。

可能這會幫助你。

+0

其實他們都在相同的堆棧。所以我不能使用這個答案,但感謝您的幫助。我今天學到了東西! – specialone 2014-10-07 13:01:52

+0

@specialone是的,我的兄弟顯然都會在同一個堆棧中,但是您可以找到哪一個正好位於導航堆棧的DetailedContactView對象之上,並且可以區分。如果你想我可以給你代碼。希望我也給了你所有其他選項,可以區分兩個ViewController。就像你在上面的答案中接受的那樣。但至少感謝你回覆 – iHulk 2014-10-07 13:11:22

+0

是的,如果你能提供我的代碼,我會理解更多關於導航堆棧,將不勝感激。在Objective-C中,我仍然很新。感謝您的幫助。 :) – specialone 2014-10-07 13:15:01

0

正確的方法是實現SaveContactView和ListContactView的-prepareForSegue:sender:。將segue的目標轉換爲DetailedContactView類型並執行自定義設置。

// SaveContactView 
- (void)prepareForSegue:(UIStoryboardSegue *)segue 
       sender:(id)sender 
{ 
    DetailedContactView *detailedVC = segue.sourceViewController; 
    [detailedVC setupForShowingFromSaveView]; 
} 



// ListContactView 
- (void)prepareForSegue:(UIStoryboardSegue *)segue 
       sender:(id)sender 
{ 
    DetailedContactView *detailedVC = segue.sourceViewController; 
    [detailedVC setupForShowingFromListView]; 
} 
+0

我明白你的意思,但對於setupforshowingFromList或FromSaved。我在viewDidLoad的各自視圖控制器中調用[self getCustomer]和[self savedCustomer],它們的方法也在其各自的視圖控制器中。我如何實現你的答案? – specialone 2014-10-06 11:06:18

+0

如果可能,將該代碼從viewDidLoad移動到'setupForShowingFromList'。 – kelin 2014-10-06 12:04:51

+0

好吧我要試着讓你知道。謝謝! – specialone 2014-10-06 12:07:08

相關問題