• IOS 登陆判断问题


    有一个登陆界面,还有一个包含多个选项卡的界面在ViewController.m中登陆按钮的代码如下

    UIViewController *controller=[[Tabbarcontroller alloc]init];
    [self presentModalViewController:controller animated:YES];

    在TabbarController.h中

    @property(strong,nonatomic) UITabBarController *controller;

    然后是在TabbarController.m中的

    效果出来了 但是tabbar感觉是整体下移了一些位置(头部有一些空白,tabbar选项卡底部被遮盖了)
    这个是什么原因呢?

    简单实现方法:你的项目建立在tabbarcontroller的基础上。
    在appdelegate的

    方法中,使用

    [self.tabBarController presentModalViewController:loginNC animated:NO];

    这样,你打开程序,首先显示的登陆页面,点击登陆,在登陆的事件中加上下述代码

    [self dismissModalViewControllerAnimated:YES];

    这样就实现了你想要的效果。

    稍微麻烦点的方法:你的项目建立在singleview的基础上(单一viewController)。再写一个otherTabBarController,

    UIViewController *vc1 = [[[UIViewController alloc] init] autorelease];
    vc1.view.backgroundColor = [UIColor redColor];
    
    UIViewController *vc2 = [[[UIViewController alloc] init] autorelease];
    vc2.view.backgroundColor = [UIColor blueColor];
    
    [self setViewControllers:[NSArray arrayWithObjects:vc1,vc2, nil]];

    点击登陆就使用

    [viewController presentModalViewController:otherTabBarController animated:YES];

    otherTabBarController要继承自UITabBarController,这样就没有底部挡住的问题。

    最初我给的答案是使用继承自UIViewController的方法。
    不过我觉得这样写的代码层次会有些冗余。不如直接继承自UITabbarController作为容器。

    用系统的tabbarcontroller会挡住,至于原因因为系统的这套TabBarController.view的尺寸是320*480,而默认建立的singleview项目,是有statusBar的20像素存在,这样,viewController的尺寸是320*460,而在这个的基础上addSubview的尺寸(320*480)大于本身,自然按照左上角对齐,就导致向下偏移20像素。

    当然你也可以在AppDelegate的

    中加上

    [[UIApplication sharedApplication] setStatusBarHidden:YES];
  • 相关阅读:
    【模拟7.22】方程的解(拓展欧几里德)
    Dijkstra堆优化模板
    7.19考后总结
    《机器学习实战》读书笔记
    从K近邻算法、距离度量谈到KD树、SIFT+BBF算法
    《c程序设计语言》-3.2 字符串转换
    《c程序设计语言》-3.1 判断语句多少影响时间
    《c程序设计语言》-2.10 不用if-else 转换大小写
    《c程序设计语言》-2.9
    《c程序设计语言》-2.6~2.8
  • 原文地址:https://www.cnblogs.com/wq-gril/p/4384206.html
Copyright © 2020-2023  润新知