我对iOS世界很陌生,因为我来自Android的基于活动的世界,我对iOS如何管理视图之间的转换感到有些困惑。
我已经创建了一个UIViewController,它全屏显示一个登录表单(这是一个针对iPad的应用程序)。成功登录后,我想切换到另一个View并使用UISplitViewController。为了能够从我的初始控制器推送到第二个控制器(也是一个UIViewController),我已经添加了一个UINavigationController,我的第一个控制器是根。
我已将UISplitViewController添加到我的第二个UIViewController的xib中。 Xcode之前抱怨我的第二个UIViewController没有设置视图插件,所以我基本上盲目地将它设置为我的UISplitViewController中的detailView。
结果是第一个UIViewController确实被推开但我没有显示UISplitViewController但我在视图插座中设置了DetailView。
我错过了什么吗?有什么必要首先显示一个完整的屏幕(没有花哨,没有多余的装饰)UISplitViewController,然后推送到UISplitViewController?我以前的尝试开发了新的Storyboard功能,但事实证明这更令人困惑(即涉及太多魔法)。也许我刚刚得到了iOS的一些UI范例错误。
答案 0 :(得分:0)
一般来说,您希望将UIViewController的视图出口设置为xib中的顶级视图。当你创建了xib时,它可能会给你一个空白视图作为起点,然后你将UISplitView添加到。该(以前)空白视图是您想要作为视图出口的那个。
答案 1 :(得分:0)
您可能希望以UINavigationController作为根视图控制器开始。 UINavigationController的init方法将另一个视图控制器作为参数(混淆地也称为根ViewController),它可以是您当前用作应用程序的根视图控制器的视图控制器。然后,它将显示在导航控制器中。
将视图控制器放入导航控制器后,可以调用[self.navigationController pushViewController:x]显示新的视图控制器,[self.navigationController popViewController]再次返回。如果您不希望导航栏位于顶部,则可以将其设置为隐藏。
或者,您可以通过调用[self presentModalViewController:x]来显示其他视图控制器中的全屏视图控制器。
答案 2 :(得分:0)
在给定的代码中。我正在切换到下一个View按钮点击..
NextController (查看您希望显示为我们在Android中显示的新活动)
首先导入它喜欢
#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:@NameOfNibFileToShow
和presentViewController
是在功能中构建的,animated:YES
是为了显示动画