在拆分视图控制器中隐藏主视图

时间:2012-02-07 12:05:28

标签: ipad ios5 uisplitviewcontroller

我是iPad开发的新手(或者就此而言的iPhone :))我正在构建一个带有Split View Controller的应用程序。

事情是第一个屏幕应该是单个屏幕。我希望用户编写用户/传递数据以连接到远程服务器,并且在主视图中没有显示任何内容。

我知道我可以在splitViewController中返回YES:shouldHideViewController:inOrientation:,这对于第一个屏幕工作正常,但是当用户点击登录按钮并且凭据时,我想获得两个视图验证

我可以在shouldHideViewController中添加一些条件,并在第二个屏幕中显示两个视图,只显示第一个中的详细信息,但是只有在我旋转iPad时才调用shouldHideViewController,而不是在我执行segue时调用。

你有任何提示吗?我应该将我的UI方法更改为其他内容吗?欢迎任何建议。

1 个答案:

答案 0 :(得分:0)

从头开始是个好主意。您可以更好地控制IMO上的最新情况。 在您的起点,您想要添加您的LoginViewController。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.loginController = [[LoginViewController alloc] initWithNibName:@"LoginViewController" bundle:nil];
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    return YES;
}

稍后当身份验证过程完成后,您想继续使用SplitView,对吗?

- (void)continueWithSplitView {

    UINavigationController *leftNav = [[UINavigationController alloc] initWithRootViewController:self.masterViewController];
    UINavigationController *rightNav = [[UINavigationController alloc] initWithRootViewController:self.detailViewController];

    self.splitViewController.viewControllers = [NSArray arrayWithObjects:leftNav, rightNav, nil];
    self.view.window.rootViewController = self.splitViewController;
}

请注意,在两种方法中,您所需的viewController都设置为UIWindow的rootViewController属性。这将自动将控制器的视图添加为UIWindow中的顶级视图。

此外,请确保您遵循MVC模式,例如您的凭据组织的模型对象。

相关问题