Iphone xCode-在2个现有xib文件之间更改视图

Iphone xCode-在2个现有xib文件之间更改视图,iphone,xcode,views,xib,Iphone,Xcode,Views,Xib,我对xCode和objective-C非常陌生,所以我想制作一个简单的textRPG 我目前正在制作一个由4个xib文件组成的角色创建过程。我切换视图的唯一方法就是查看实用程序模板。问题是,现在我的第一个屏幕是第二个屏幕的代理,第三个屏幕的代理等等。所以在角色创建过程结束时,我不能忽略视图,因为这只是“后退”视图 当我四处搜索一个解决方案时,我发现了一个addSubview方法,但它似乎使一个新视图(如)变为空,以便以编程方式进行排列 我所需要的只是一种从一个加载的xib切换到另一个xib的简单

我对xCode和objective-C非常陌生,所以我想制作一个简单的textRPG

我目前正在制作一个由4个xib文件组成的角色创建过程。我切换视图的唯一方法就是查看实用程序模板。问题是,现在我的第一个屏幕是第二个屏幕的代理,第三个屏幕的代理等等。所以在角色创建过程结束时,我不能忽略视图,因为这只是“后退”视图

当我四处搜索一个解决方案时,我发现了一个addSubview方法,但它似乎使一个新视图(如)变为空,以便以编程方式进行排列

我所需要的只是一种从一个加载的xib切换到另一个xib的简单方法。我是否误解了addSubview,或者我需要完全不同的东西

(如果有帮助的话:我已经在VB工作了好几年,以防你注意到我遗漏了一些关于视图之类的概念)
提前感谢!:)

它被称为
UINavigationController
。想法是

1) 每次用户提交当前屏幕时,您将相应的“下一个”控制器推入导航控制器。奖励-在角色创建的每一步,你都可以免费获得“后退”按钮

2) 创建角色后,从堆栈中弹出所有角色创建控制器


请在尝试“切换视图”等之前阅读。您将节省大量的时间和精力。

它被称为
UINavigationController
。想法是

1) 每次用户提交当前屏幕时,您将相应的“下一个”控制器推入导航控制器。奖励-在角色创建的每一步,你都可以免费获得“后退”按钮

2) 创建角色后,从堆栈中弹出所有角色创建控制器


请在尝试“切换视图”等之前阅读。您将节省大量的时间和精力。

另一个想法是根本不使用interface builder。我已经使用iphone应用程序两年了,发现interface builder确实延长了实际制作的时间。制作自己的根控制器,并考虑在视图中导航所需的逻辑。

另一个想法是根本不使用interface builder。我已经使用iphone应用程序两年了,发现interface builder确实延长了实际制作的时间。制作自己的根控制器,并考虑在视图中导航所需的逻辑。

@Joakim好的,我就是这样做的。我有一个名为RootViewController:UIViewContoller的类,我直接将其视图添加到窗口中。然后我创建了UIView的一个子类,即MyView。然后,我的所有视图都是MyView的子类。我还为我的所有视图进行枚举。在RootViewController中,您应该有一个switchView:(int)view方法,该方法如下所示:

    -(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*\u currentView; TitleView和HomeView都是MyView的子类,有一个公共方法-(id)initWithRoot:(RootViewController*)rvc

要在视图之间切换,请使用[_rvcswitchview:homeView];
希望这有帮助:)

@Joakim好的,我就是这样做的。我有一个名为RootViewController:UIViewContoller的类,我直接将其视图添加到窗口中。然后我创建了UIView的一个子类,即MyView。然后,我的所有视图都是MyView的子类。我还为我的所有视图进行枚举。在RootViewController中,您应该有一个switchView:(int)view方法,该方法如下所示:

    -(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*\u currentView; TitleView和HomeView都是MyView的子类,有一个公共方法-(id)initWithRoot:(RootViewController*)rvc

要在视图之间切换,请使用[_rvcswitchview:homeView];
希望这有帮助:)

使用此代码。它真的很简单,而且效果很好

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

这将切换到另一个xib文件,两个视图将互不拥有。我现在正在自己的游戏中使用它。

使用此代码。它真的很简单,而且效果很好

  View *view = [[View alloc] initWithNibName:@"xibNameGoesHere" bundle:nil];
view.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController:view animated:YES completion:nil];
这将切换到另一个xib文件,两个视图将互不拥有。我现在正在我自己的游戏中使用它