没有基于导航的应用程序跳转到下一个视图

时间:2012-08-31 00:52:55

标签: ios uiviewcontroller uinavigationcontroller

除了使用基于导航的应用程序之外,还有哪些方法可以更改视图?我希望我的第一个视图基本上只是一个简单的表单,当用户点击“提交”按钮时,我想将他发送到主视图,而不能返回。而且我也不希望视图顶部的条形图。

如何在不丢失基于导航的应用程序附带的动画的情况下实现此目标。

3 个答案:

答案 0 :(得分:0)

您是否在UIViewController类描述中查看'presentViewController:animated:completion:'?在另一个viewController中设置动画的方法有很多选项。

答案 1 :(得分:0)

雪橇,你可以简单地为你的UINavigationController隐藏UINavigationBar。

这样你就不会看到UINavigationBar,用户将无法返回该页面。

您需要在应用中设置永久标记,写入文本文件或使用NSUserDefaults。

答案 2 :(得分:0)

如果您希望自己的应用程序完全免费使用导航控制器,则可以使用presentModalViewController:animated:中的一个签名来自您认为最适合作为父级的UIViewController。在处理提交状态更改后,在子视图(您要提交的表单)上调用[self dismissModalViewControllerAnimated:YES]。有一点需要注意的是,从iOS 5开始,Apple现在更喜欢使用presentViewController:,而presentModalViewController:会在未来的日期标记为弃用。

就“您如何知道用户提交表单的方式而言,他们现在可以继续使用您的应用程序” - 您可以采用的一种方法是使用委托/通知来保持对表单状态的了解。提交子表单时,您可以调用parentViewController的委托回调来设置标志 - 例如,在AppDelegate或某个高级类中返回身份验证数据。使用iOS SDK时,DelegationNotifications是有用的工具。

选项二可能会使用completion handler来调用您的孩子,例如:

ChildForm *childFormWithSubmit = [[ChildForm alloc] init];
[self presentModalViewController:childFormWithSubmit animated:YES 
                      completion:^(/*inlineFunctionParams*/) 
                                  { /*inlineFunctionBodyToRunOnCompletion*/ }];

很多可能性〜