如何在ios中启用个人热点时解决视图?

时间:2017-05-11 08:37:30

标签: ios objective-c view uitabbarcontroller personal-hotspot

我以编程方式为UITabBarController创建视图。

ViewController.m

    @interface ViewController ()
    {   
        UITabBarController *tabBarController;
        MainViewController *mainView;
        GroupViewController *grpView;
    }

    -(id)init
    {
        self=[super init];

        [self initControl];
        return self;
    }


    -(void)initControl
    {

    }

    - (void)viewDidLoad {
        [super viewDidLoad];

        NSLog(@"ViewController - viewDidLoad");
        self.mainView=[[MainViewController alloc] init];
        self.grpView=[[GroupViewController alloc] initWithNibName:@"GroupViewController" bundle:[NSBundle mainBundle]];
        self.meView=[[MeViewController alloc] initWithNibName:@"MeViewController" bundle:[NSBundle mainBundle]];



        UITabBarItem *tempItem=[[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"Device", @"Device") image:[[UIImage imageNamed:@"device1"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] tag:1];
        tempItem.selectedImage=[UIImage imageNamed:@"device"];
        mainView.tabBarItem=tempItem;
        tempItem.imageInsets = UIEdgeInsetsMake(0.0, 0, -0.0, 0);


        tempItem=[[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"Group", @"Group") image:[[UIImage imageNamed:@"group1"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] tag:2];
        tempItem.selectedImage=[UIImage imageNamed:@"group1"];
        grpView.tabBarItem=tempItem;
        tempItem.imageInsets = UIEdgeInsetsMake(0.0, 0, -0.0, 0);

        self.tabBarController= [[UITabBarController alloc] init];
        NSMutableArray *controllers=[[NSMutableArray alloc] initWithCapacity:2];

        [controllers addObject:self.mainView];
        [controllers addObject:self.grpView];

        self.tabBarController.viewControllers =controllers;
        [self.view addSubview:self.tabBarController.view];
        self.tabBarController.delegate=self;
    }

个人热点关闭时工作正常。

enter image description here

当我打开热点并且有人连接到iPhone,而不是打开应用程序。 view不在屏幕之外,如以下屏幕截图个人热点开启时

enter image description here

个人热点开启后如何解决问题? 提前谢谢。

1 个答案:

答案 0 :(得分:2)

检查

添加观察者状态栏改变了长度:

 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(StatusbarspaceHide:) name:UIApplicationWillEnterForegroundNotification object:nil];
状态栏更改时

操作:

-(void)StatusbarspaceHide:(NSNotificationCenter *)notification{
    [UIView animateWithDuration:0.35 animations:^{
        // CGRect windowFrame = ((UINavigationController *)((UITabBarController *)self.window.rootViewController).viewControllers[0]).view.frame;
        CGRect windowFrame = self.view.frame;

        if (self.view.frame.origin.y > 20) {
            windowFrame.origin.y = self.view.frame.size.height - 20 ;// old status bar frame is 20
        }
        self.view.frame = windowFrame;
    }];
}