2011-12-22 82 views
1

免責聲明:我是非常適合 iOS開發新手。請原諒這個問題的可能愚蠢:)在「單一視圖應用程序」中更改視圖

我開始在XCode「單一視圖應用程序」,它現在有一個「故事板」,這是所有的代碼和工作很好的接口。現在,我意識到我需要另一種觀點。什麼是最簡單的方法來做到這一點(現在創建另一個視圖,並在代碼之間切換)。我真的不關心動畫。

任何幫助,將不勝感激。謝謝!


編輯:非常感謝您的全力幫助。我最終創建了一個沒有ARC或Storyboard的新項目,並將最低版本設置爲4.0。然後我用Mats Stijlaart的回答。

回答

2

如果你想創建一個從廈門國際銀行的新觀點做到這一點:

  • 做一個UIViewController子類。 (.h + .m)
  • 製作一個空的XIB。
  • 使UIViewController的子類成爲XIB的文件所有者。
  • 添加一個UIView。
  • Ctr從文件所有者拖動到UIView以將視圖屬性鏈接到UIView。
  • 讓你的看法。

在您的代碼中。 我假設您目前有1個控制器類與鏈接到屏幕上顯示的視圖。

在此控制器中,您可能有一個要結合的事件以顯示新視圖。讓我們說myEvent。

- (IBAction) myEvent:(id)sender { 
    ViewControllerSubClass *subClass = [[ViewControllerSubClass alloc] initWithNibName:@"YourXIB" bundle:nil]; 
    subClass.view.frame = self.view.frame; 
    subClass.view.autoresizingMask = self.view.autoresizingMask; 
    [self.view.superview addSubview:subClass.view]; 

    //ARC 
    instanceVarSubClass = subClass; 

    //NO ARC 
    self.instanceVarSubClass = subClass; 
    [subClass release]; 
} 

您應該使用(retain)關鍵字創建強實例變量(ARC)或屬性。

希望這有幫助。

1

最簡單的方法是使用NavigationController和另一個ViewController。

在你的故事板中,選擇當前存在的ViewController。然後,點擊菜單中的「編輯器」,然後選擇「嵌入」> NavigationController。

其次,創建一個新的UIViewcontroller子類將一個UIViewController拖到故事板上。並將其在Identity Inspector中的類設置爲您剛剛創建的視圖控制器。第三,點擊ctrl-key並從第一個viewController拖到你剛剛拖到故事板上的那個。彈出窗口將會顯示。點擊「推」。你剛剛創建了一個segue。恭喜:)

單擊segue(ViewControllers之間的界限)並在屬性檢查器中爲其指定一個標識符。

接下來,在你的代碼,這樣做([SEGUE-符]是你剛纔給的標識符。):

[self performSegueWithIdentifier:@"[segue-identifier]" sender:self]; 

.... 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if([[segue identifier] isEqualToString:@"[segue-identifier]"]) 
    { 
     second *controller=[segue destinationViewController]; 
     //do stuff with the new controller here, for instance: delegation. 
    } 
} 

就是這樣,我認爲!希望我沒有忘記任何重要的;)

+0

您不需要的代碼執行SEGUE因爲故事板將做到這一點了,但我想不出你錯過了什麼。好的答案和我的另一種選擇 - OP現在可以選擇是否需要導航或模態視圖。 – jrturton 2011-12-22 08:16:57

+0

對不起,收回我評論的第一部分 - 如果您只是將其從一個視圖控制器連接到下一個視圖控制器,則需要執行代碼才能執行segue。我以爲你會說從一個按鈕連接它。 – jrturton 2011-12-22 09:01:14

0

在你的項目中添加一個新的UIViewController子類。

在你的故事板中,將一個新的視圖控制器拖入現有故事板旁邊的故事板。在身份檢查器中將自定義類設置爲新的視圖控制器類。

在原始視圖控制器上放置一個新按鈕,然後按住ctrl拖動它到您的新視圖控制器。從segue type彈出菜單中選擇「modal」。

在這一點上,你將能夠運行你的應用程序,按下新的按鈕,你的新視圖控制器的視圖將出現。

要切換回第一個視圖,您需要在新視圖控制器中調用dismissModalViewController:animated:的另一個按鈕。其餘的由你決定!祝你好運!

0

我對iOS開發也很新,並沒有太多的故事情節介紹經驗,但是我爲客戶做的應用程序在他們的需求上相當簡單,因此我希望能夠定位iOS版本4.0之前。

如果您的應用案例類似(即您沒有使用iOS 4/5的任何主要功能),那麼我建議您只是堅持使用XIB文件。 ThomasM已經給了很多更詳細的回答比我在用故事板,但與XIBs和NavigationControllers它的簡單的東西如:

[self.navigationController pushViewController:dvController animated:YES]; 
相關問題