如何在 iOS 上的视图之间切换

Posted

技术标签:

【中文标题】如何在 iOS 上的视图之间切换【英文标题】:How to switch between Views on iOS 【发布时间】:2012-01-12 07:03:37 【问题描述】:

我对 ios 世界很陌生,由于我来自基于 Activity 的 android 世界,我对 iOS 如何管理视图之间的转换有点困惑。

我已经创建了一个全屏显示登录表单的 UIViewController(这是一个针对 iPad 的应用程序)。成功登录后,我想切换到另一个视图并使用 UISplitViewController。为了能够从我的初始控制器推送到第二个控制器(这也是一个 UIViewController),我已经添加了一个 UINavigationController,我的第一个控制器是根。

我已将 UISplitViewController 添加到我的第二个 UIViewController 的 xib 中。 Xcode 之前抱怨我的第二个 UIViewController 没有设置视图出口,所以我基本上盲目地将其设置为我的 UISplitViewController 中的 detailView。

结果是第一个 UIViewController 确实被推开,但我没有让 UISplitViewController 显示,但我在视图出口中设置了 DetailView。

我错过了什么吗?首先显示全屏(没有什么花哨,没有多余的装饰)UISplitViewController 然后推送到 UISplitViewController 需要什么?我之前的尝试涉及新的故事板功能,但结果更加令人困惑(即涉及太多魔法)。也许我只是弄错了一些 iOS 的 UI 范例。

【问题讨论】:

【参考方案1】:

您可能希望从 UINavigationController 作为您的根视图控制器开始。 UINavigationController 的 init 方法将另一个视图控制器作为参数(混淆地也称为根 ViewController),它可以是您当前用作应用程序的根视图控制器的视图控制器。然后它将显示在导航控制器中。

将视图控制器放入导航控制器后,您可以调用 [self.navigationController pushViewController:x] 来显示新的视图控制器,然后调用 [self.navigationController popViewController] 再次返回。如果不希望顶部的导航栏,可以将其设置为隐藏。

或者,您可以通过调用 [self presentModalViewController:x] 来显示另一个视图控制器中的全屏视图控制器。

【讨论】:

【参考方案2】:

一般来说,您希望将 UIViewController 的视图出口设置为您的 xib 中的***视图。当您创建 xib 时,它可能会给您一个空白视图作为起点,然后您将 UISplitView 添加到其中。那个(以前的)空白视图是您想要的视图出口。

【讨论】:

【参考方案3】:

在给定的代码中。我正在点击按钮切换到下一个视图..

NextController(您想要显示的视图就像我们在 Android 中显示的新 Activity 一样)

首先要导入

#import "NextController.h"

然后

- (IBAction)clicking:(id)sender 

    NextController *nextviewcontroller = [[NextController alloc]initWithNibName:@"NextController" bundle:nil];// include it before calling it..

    [self presentViewController:nextviewcontroller animated:YES completion:nil];


其中initWithNibName:@NameOfNibFileToShowpresentViewController 是内置函数,animated:YES 用于显示动画

【讨论】:

以上是关于如何在 iOS 上的视图之间切换的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Storyboard 在 iOS 中的 UIViewController 之间切换

视图控制器 IOS 视图间切换

如何使用 UITapGestureRecognizer 在 UIView 上的两种颜色之间切换

在 Mapbox 中,如何从 iOS 上的样式切换图层?

如何实现一个按钮在另一个视图中切换

如何在 Symbian C++ 中切换视图?