2013-02-18 65 views
1

我需要制定出在任何給定時間如何確定故事板處於活動狀態。我有一個專門的本土化,我需要識別故事板(UIView),然後根據用戶按下的內容以編程方式更改內容。確定哪個故事板處於活動狀態

  1. 所有故事板都有標識符。
  2. 在根視圖viewDidLoad我有以下幾點。
    • (void)viewDidLoad self.topViewController = [storyboard instantiateViewControllerWithIdentifier:@「View1」]; {

我想要做的是確定哪些故事情節用戶並根據壓機做以下須藤代碼

  • (無效),如果(故事板viewDidLoad中 .name!= RootView) self.topViewController = [storyboard instantiateViewControllerWithIdentifier:@「View1」]; (storyboard.name = View2){ {self_topViewController = }

等....

我通過代碼一步,看到的StoryboardID但是它的,我敢肯定你不是爲了使用....

謝謝推進 傑里米

UPDATE:解讀導航

我試圖實現ECSlideViewController,但它做我的頭有效。將幻燈片添加到正確的功能以顯示更多選項。所以,這個想法很容易就會變成icky。我有主UIViewController然後我有4個按鈕在其他UIViewControllers,UIViewController等segueway

爲了產生對View1,View2,View3,View4的影響,我需要將類(ECSlideViewController按該示例)到UIViewController中。但如果我改變下面的代碼來表示這個...

self.topViewController = [storyboard instantiateViewControllerWithIdentifier:@「HomeView」];它因爲自稱而崩潰。不好,循環編碼是一個不錯的選擇。

但是,如果我將它設置爲原來的位置 self.topViewController = [storyboard instantiateViewControllerWithIdentifier:@「FirstTop」]; < - (BTW第一OP與示例中使用的視圖的標題)

它的工作原理,但隨後無視的UIViewController

這就是爲什麼我問,如果有一種方法來識別的self.title UIViewController(說故事板......我的不好),因爲我打算在它周圍放置條件邏輯,以便在UIViewController中不放置代碼。

除非您下載ECSlideViewController並開始播放,否則確實很難解釋。但有效地,我只是想測試self.title .....我認爲...

另一個想法是將邏輯放到四個UIViewControllers中,讓它在那裏工作......但它怪胎傳遞零,因爲它的預期的標識符...

希望這是有道理....

J.

+0

我想你對一個故事板是什麼感到困惑。故事板沒有標識符,視圖控制器和segues。製作應用程序時,您會自動獲取故事板,其文件名爲MainStoryboard.storyboard。你有沒有添加任何其他故事板到你的應用程序,或者你在談論視圖控制器? – rdelmar 2013-02-18 03:25:01

+0

抱歉,我的壞...是的...我的意思是視圖控制器。 – Jeremy 2013-02-18 04:03:02

+0

實際上,我只需要得到UIView的標題......但是對於我的生活,當我使用self.title時,它會產生代表標題的數字。 – Jeremy 2013-02-18 05:05:41

回答

0

好的球員,

共拋棄ECSlideViewController。我發現一些文章解釋說,當你有多個UiViewController沒有正確地傳遞數據時,它有問題。我結束了使用安德魯斯的建議。 http://www.youtube.com/feed/UCJA_puohXgnze8gPaerTeig它對我來說更容易。

雖然我注意到蘋果有什麼設計指導方針通常是不是不行,但我希望他們不介意。

再次感謝大家!

J.

0

我不知道這會有所幫助,但它聽起來像是你將有比較實例以獲得您正在查找的結果。我沒有嘗試過,但我會在應用程序委託中創建每個故事板的屬性,然後在視圖控制器中引用應用程序委託以進行比較。這可能不是最好的編碼實踐,但我會把它留在你的手中。

喜歡的東西(未測試的代碼):

- (void)testStoryBoard //After awake from nib or viewDidLoad 
{ 
    NXAppDelegate *appDelegate = (NXAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    if ([self.storyBoard isEqual:appDelegate.view1StoryBoard]) 
     NSLog(@"View1 Storyboard"); 
    else 
     NSLog(@"View 2 Storyboard"); 
} 
相關問題