我是新来的Objective-C,和我正在寻找关于如何管理多个视图控制器一些建议。Objective-C的管理多个视图控制器
我已经查看了他们的内置容器视图控制器类的Apple文档,他们都不是我正在寻找 - 最接近的是NavigationController,但即使这似乎有点关闭。
我想要实现的一系列ViewControllers的 - 它们使用xibs他们的接口 - 从一个根据接下来的一系列规则的过渡。例如,在应用加载时,我们会看到本地存储中是否有userId
- 如果我们不存在,请显示注册屏幕。接下来,有一个按钮(说)命令出租车 - 如果该按钮被点击,显示确认屏幕。
另外可选另外:我认为这不符合导航控制器的原因是流程看起来不是层次结构,而是一种分枝和线性。一个具体的例子是我不需要导航栏返回,这似乎是导航控制器上的标准。但我不太了解NavigationController,无法确定它是否适合此用例。
我一直在用各种方法破解这个。例如,在一个IBAction为处理程序中,我使用此代码过渡到一个新的视图控制器中:
UIViewController *view = [[UIViewController alloc] initWithNibName:@"CCWConfirmViewController" bundle:nil];
view.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentViewController:view animated:YES completion:nil];
而且,在我的窗口的“根”视图控制器(我设置是SignupViewController)initWithNibName,我返回不同的视图控制器不是一个要求,根据本地存储的呼叫我前面提到的结果:
if (currentUser.userId) {
// Instead of returning the SignupViewController, like was asked,
// return the MainViewController, since signup isn't needed for existing
// users.
CCWMainViewController *mvc = [[CCWMainViewController alloc] init];
return mvc;
我看起来像我必须做一些错误的(第二黑客建立而产生警告,因为我正在返回一个指向错误类型的指针)。任何人都知道更好的方法?毕竟是我的NavigationController,而我只是误解了它的目的?我只需要实现一个自定义容器来充当我的RootViewController并管理这些其他ViewControllers?
嘿,我真的很喜欢这个。看起来编译器并不喜欢这个:[self。查看addSubview:mvc.view.frame] - 它应该是[self.view addSubview:mvc.view](没有'帧'调用结束)? –
对不起,我的坏!复制粘贴的副作用:)你是对的,请看我的编辑我的答案。 – Suhas