除了使用基于导航的应用程序之外,还有哪些方法可以更改视图?我希望我的第一个视图基本上只是一个简单的表单,当用户点击“提交”按钮时,我想将他发送到主视图,而不能返回。而且我也不希望视图顶部的条形图。
如何在不丢失基于导航的应用程序附带的动画的情况下实现此目标。
答案 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时,Delegation和Notifications是有用的工具。
选项二可能会使用completion handler来调用您的孩子,例如:
ChildForm *childFormWithSubmit = [[ChildForm alloc] init];
[self presentModalViewController:childFormWithSubmit animated:YES
completion:^(/*inlineFunctionParams*/)
{ /*inlineFunctionBodyToRunOnCompletion*/ }];
很多可能性〜