2011-03-12 58 views
0

我對xCode和objective-C非常陌生,所以我想製作一個簡單的textRPG。xCode - 在2個現有的xib文件之間更改視圖

我目前正在進行一個由4個xib文件組成的角色創建過程。切換視圖的唯一方法是查看實用程序模板。問題是,現在我有第一個屏幕作爲第二個屏幕的代表,作爲第三個屏幕的代表等等。所以在角色創建過程結束時,我不能忽視視圖,因爲那只是「退後」觀點。

當我搜索了一個解決方案,我發現了一個addSubview方法,但它似乎使得一個新的視圖,像空,以編程方式安排。

我只需要一個簡單的方法,從一個加載的xib切換到另一個xib。我誤解了addSubview還是需要完全不同的東西?

(如果有幫助:我已經與VB合作了好幾年,萬一你注意到我錯過了某種關於視圖的概念等) 在此先感謝! :)

回答

2

@Joakim好的,這是我做的。我有一個名爲RootViewController的類:UIViewContoller,它的視圖直接添加到窗口中。然後我創建了UIView的一個子類,即MyView。然後,我的所有視圖子類MyView。我也爲我所有的觀點製作一個枚舉。在RootViewController的你應該有一個SWITCHVIEW:看起來像這樣(INT)查看方法:

-(void) switchView:(myView) view 
    { 
     [_currentView removeFromSuperview]; 

     switch(view) 
     { 
      case titleView: 
      _currentView = [[TitleView alloc] initWithRoot:self]; 
      break; 
      case homeView: 
      _currentView = [[HomeView alloc] initWithRoot:self]; 
      break; 
      default: break; 
     } 
     [self.view addSubview:_currentView]; 
     [_currentView release]; 
    } 

在@interface RootViewContoller定義MyView的* _currentView; TitleView和HomeView的子類MyView都有一個通用的方法 - (id)initWithRoot:(RootViewController *)rvc。

要在視圖之間切換,請使用[_rvc switchView:homeView]; 希望這有助於:)

0

它被稱爲UINavigationController。想法是

1)每次用戶提交當前屏幕時,將相應的'下一個'控制器推入導航控制器。獎勵 - 在角色創建的每一步都會免費獲得「返回」按鈕。

2)字符創建後,彈出堆棧中的所有字符創建控制器。

在嘗試「切換視圖」之前,請先閱讀View Controller Programming Guide for iOS。您將節省大量的時間和精力。

0

另一個想法是根本不使用接口生成器。我已經與iPhone應用程序工作了兩年,並發現界面構建器確實延長了實際製造時間的時間。創建自己的根控制器並考慮瀏覽視圖所需的邏輯。

4

使用此代碼。它非常簡單,效果很好。

View *view = [[View alloc] initWithNibName:@"xibNameGoesHere" bundle:nil]; 
view.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
[self presentViewController:view animated:YES completion:nil]; 

這將切換到另一個廈門國際銀行文件和兩個視圖不會擁有彼此。我現在在我自己的遊戲中使用它。