1

当我将 UISplitviewController 分配为应用程序的 Rootview 时工作正常,但现在我想将登录屏幕添加到我的应用程序中。有人可以帮助我提前感谢。

4

4 回答 4

1

您可以将您的 LoginViewcontroller 添加为 Delegate 中的根视图控制器,并在 LoginScreen loginbutton 操作检查 userName 或 passowrd 如果它为真,那么您必须创建您的 Delegate 对象并将 rootviewconteroller 设置为您的 splitviewcontroller。像我的波纹管代码: -

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{


    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    self.viewController = [[LogInViewController alloc] initWithNibName:@"LogInViewController" bundle:nil];


     self.window.rootViewController = self.viewController;

       [self.window makeKeyAndVisible];
    return YES;

}

和你的 loginButton 动作:

-(IBAction)loginclick:(id)sender
{
     objAppdelegate = (yourProjectnameDelegate *) [[UIApplication sharedApplication]delegate];
     NSMutableArray *array = [NSMutableArray array];

                HomeSpilitView = [[[UISplitViewController alloc] init]autorelease];

                HomeMster = [[HomeSpilitViewController alloc] initWithNibName:@"HomeSpilitViewController" bundle:nil];

                masterNavigationController = [[[UINavigationController alloc] initWithRootViewController:HomeMster] autorelease];
                HomeMster.title=@"Title home";
                masterNavigationController.navigationBar.tintColor =[UIColor colorWithRed:255/255.0 green:108/255.0 blue:61/255.0 alpha:0.1];
                [array addObject:masterNavigationController];


                HomeDetailsViewController *HomeDetailsViewControllers = [[HomeDetailsViewController alloc] initWithNibName:@"HomeDetailsViewController" bundle:nil];

                detailNavigationController = [[[UINavigationController alloc] initWithRootViewController:HomeDetailsViewControllers] autorelease];

                detailNavigationController.navigationBar.tintColor =[UIColor colorWithRed:255/255.0 green:108/255.0 blue:61/255.0 alpha:0.1];
                HomeDetailsViewControllers.title=@"details title";
                HomeMster.objHomeDetailsViewcontroller=HomeDetailsViewControllers;
                HomeSpilitView.delegate = HomeDetailsViewControllers;

              [array addObject:detailNavigationController];

              [HomeSpilitView setViewControllers:array];

              [objAppdelegate.window setRootViewController:HomeSpilitView];


}

更新 最后我使用波纹管代码完成了它: -

 UIInterfaceOrientation interfaceOrientation = HomeSpilitView.interfaceOrientation;
    NSString *subtypeDirection;
    if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft) {
        subtypeDirection = kCATransitionFromTop;
    }
    else if (interfaceOrientation == UIInterfaceOrientationLandscapeRight) {
        subtypeDirection = kCATransitionFromBottom;
    }
    else {
        subtypeDirection = kCATransitionFromRight;
    }
    [objAppdelegate.window setRootViewController:HomeSpilitView];
    CATransition *animation = [CATransition animation];
    [animation setDuration:0.5];
    [animation setType:kCATransitionPush];
    [animation setSubtype:subtypeDirection];
    [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];

    [[objAppdelegate.window layer] addAnimation:animation forKey:@"SwitchToView1"];
于 2013-06-06T12:55:13.827 回答
0

创建一个 newViewController 然后将其分配为根ViewController

在此newViewController检查用户名和密码,如果正确,则加载您的splitsviewcontroller或显示拒绝访问消息。

于 2013-06-06T12:48:38.253 回答
0

苹果说

拆分视图控制器的视图应始终安装为应用程序窗口的根视图。您永远不应该在导航或标签栏界面内显示拆分视图。

使用模态视图控制器来呈现登录视图。

或尝试:MGSplitViewController

于 2013-06-06T12:55:49.953 回答
0
  1. 在导航控制器上创建您的注册、登录屏幕
  2. 当您想跳转到 SplitviewController 时,只需将其设置为根视图控制器即可。

    #define ApplicationDelegate  ((AppDelegate*)[[UIApplication sharedApplication] delegate])
    
    
    SplitHomeViewController *objSplitHomeVC = VCWithIdentifier(@"SplitHomeViewController_iPad");
    [ApplicationDelegate.window setRootViewController:(UIViewController*)objSplitHomeVC];
    
于 2015-07-17T07:23:30.937 回答