2013-07-22 116 views
0

我有一個視圖,用戶選擇要採取的操作,並在下一個屏幕上有一個保存和後退按鈕。對於這兩個按鈕,最後一行是dismissViewControllerAnimated:iOS有條件地顯示視圖

我需要一種方法來使第一個屏幕僅在使用後退按鈕時才顯示。保存應該發回到主屏幕/ rootViewController我對iOS相當新,但不是一般的編程,只需要在正確的方向微調。

我可以設置bool標誌顯示與否嗎?也許我可以在視圖上設置標籤,然後在保存/返回時檢查其他屏幕上的標籤?我假設我可以檢查父視圖。

對不起,如果這是一個dup,但我無法找到任何具體的東西。

編輯:我不使用導航控制器,並以模態顯示視圖。

+2

視圖控制器的結構是什麼? – Wain

+0

您是使用導航控制器還是以模態方式呈現視圖? –

+0

@RazorSharp @Wain我相信所有的觀點都是模態的。至少我在這組屏幕上是這樣做的。我剛從第三方接手這個項目,這是我第一次使用obj-c。所有的viewcontrollers被調用像這樣'[self presentViewController:myController Animated:YES Completion:NULL];'我沒有在任何地方使用導航控制器。 –

回答

1

答案取決於你的UIViewControllers的結構和設置。如果您使用的是那麼你可以POP到根視圖控制器使用:

[self.navigationController popViewControllerAnimated:YES]; 

如果你介紹你UIViewControllers模態,你可以嘗試解散你的模式視圖控制器的呈現視圖控制器使用presentingViewController屬性:

[[[self presentingViewController] presentingViewController] dismissViewControllerAnimated:YES completion:nil]; 

您可能還希望,如果您使用的是故事板來看看開卷塞格斯

最後,儘可能確定後退按鈕是否按下另一個按鈕 - 這取決於應用程序是如何設置。您需要使用自己的邏輯(可能是if/then語句或case/switch)來確定按下哪個按鈕。您還可能想查看IBActions中的sender參數。

+0

我已經刪除了所有子視圖,並將其發送回第一個屏幕。這個視圖實際上並不是第一個堆棧,而是用戶在選擇圖像或採用新圖像後會看到的第一個視圖。相機是否可能將自己設置爲超級視圖控制器,這就是爲什麼它將我發送到該屏幕的原因?編輯:在真正的第一個屏幕上,用戶點擊一個相機按鈕,它會打開相機,然後將它們發送到屏幕以預覽圖像並選擇一個動作。 –

+0

@JohnS嗯......我不完全明白你在這裏說什麼。也許你可以編輯你的問題,並提供更多的細節?或者,您是否使用標準系統「UIImagePicker」來顯示相機及其編輯功能? –

+0

感謝您的幫助。看到我的答案爲解決方案。我對術語感到困惑,並沒有幫助。 –

0

約翰,有UINavigationViewController返回到它的根視圖控制器,你可以使用:
[nameOfNavController popToRootViewControllerAnimated:YES];

其他的人是正確的,你所提供的信息是絕對不夠的,確定正是你需要做什麼。

您可以使用模態視圖控制器的presentingViewController屬性來訪問其呈現控制器。