除了使用基于导航的应用程序之外,还有哪些方法可以更改视图?我希望我的第一个视图基本上只是一个简单的表单,当用户点击“提交”按钮时,我想将他发送到主视图,而无法返回。而且我也不希望视图顶部的栏。
我怎样才能做到这一点,如果可能的话,不会丢失基于导航的应用程序附带的动画。
除了使用基于导航的应用程序之外,还有哪些方法可以更改视图?我希望我的第一个视图基本上只是一个简单的表单,当用户点击“提交”按钮时,我想将他发送到主视图,而无法返回。而且我也不希望视图顶部的栏。
我怎样才能做到这一点,如果可能的话,不会丢失基于导航的应用程序附带的动画。
你看过 UIViewController 类描述中的 'presentViewController:animated:completion:' 吗?在另一个 viewController 中设置动画的方式有很多选择。
Sled,您可以简单地为您的 UINavigationController 隐藏 UINavigationBar。
这样您就不会看到 UINavigationBar 并且用户将无法返回该页面。
您需要在应用程序中设置一个永久标志,或者写入文本文件或使用 NSUserDefaults。
如果您希望您的应用程序完全没有导航控制器,您可以使用presentModalViewController:animated:
您认为最适合作为父级的任何 UIViewController 的签名之一。处理提交时的状态更改后,调用[self dismissModalViewControllerAnimated:YES]
子视图(您要提交的表单)。需要注意的一件事是,从 iOS 5 开始,Apple 现在更喜欢您使用它presentViewController:
,并presentModalViewController:
标记为在将来的某个日期弃用。
就“您将如何知道用户提交了表单,因此他们现在可以继续您的应用程序”而言 - 您可以这样做的一种方法是使用委托/通知来保持对表单状态的了解。提交子表单时,您可以调用 parentViewController 的委托回调来设置标志 - 或返回身份验证数据,例如 - 在您的 AppDelegate 或某些高级类中。 使用 iOS SDK 时,委派和通知是有用的工具。
选项二可以在您的调用中使用完成处理程序来呈现孩子,例如:
ChildForm *childFormWithSubmit = [[ChildForm alloc] init];
[self presentModalViewController:childFormWithSubmit animated:YES
completion:^(/*inlineFunctionParams*/)
{ /*inlineFunctionBodyToRunOnCompletion*/ }];
多种可能~