2011-03-12 55 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]; 

这将切换到另一个厦门国际银行文件和两个视图不会拥有彼此。我现在在我自己的游戏中使用它。