IOS UISplitViewController之 添加启动密码

UISplitViewController  在不添加启动密码时,开机默认的委托方中执行顺序为

先 调用

-(void)splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)pc

再 调用

- (void)splitViewController:(UISplitViewController *)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem


但是:

   如果 添加了启动密码之后,密码框要 以 模式视图的形式添加,所以 此时就不会再调用

放发了,

- (void)splitViewController:(UISplitViewController *)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem



  如果需要的话(在分割视图中 需要控制导航栏 的按钮个数时),可以在输入密码结束后  手工调用 

如下:

[self splitViewController:splitController willShowViewController:masterController invalidatingBarButtonItem:nil];




、、、、、、、、、、、、、、、、、、、、、、不仅仅如此、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

在 添加玩密码框之后,还需要手工调用  master  与  detail的  转屏方法

如下:

UIInterfaceOrientation orientation = self.splitController.interfaceOrientation;
    UIInterfaceOrientation masterFrom = self.masterController.interfaceOrientation;
    UIInterfaceOrientation detailFrom = self.detailController.interfaceOrientation;
    [self.masterController willRotateToInterfaceOrientation:orientation duration:.1];
    [self.detailController willRotateToInterfaceOrientation:orientation duration:.1];
    [self.masterController didRotateFromInterfaceOrientation:masterFrom];
    [self.detailController didRotateFromInterfaceOrientation:detailFrom];




综上所述:在添加玩密码框之后 可以将方法封装一下,如下,待密码输入正确时调用

在 (UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:ButtonItem;  

方法中调用下面的语句,保存 master 的按钮(因为时系统作为参数传递过来的),在手动调用时要用到

profileBarButtonItem = barsplitViewController:

  1. - (void)passcodeViewDidDismiss  
  2. {  
  3.     UIInterfaceOrientation orientation = self.splitController.interfaceOrientation;  
  4.     UIInterfaceOrientation masterFrom = self.masterController.interfaceOrientation;  
  5.     UIInterfaceOrientation detailFrom = self.detailController.interfaceOrientation;  
  6.     [self.masterController willRotateToInterfaceOrientation:orientation duration:.1];  
  7.     [self.detailController willRotateToInterfaceOrientation:orientation duration:.1];  
  8.     [self.masterController didRotateFromInterfaceOrientation:masterFrom];  
  9.     [self.detailController didRotateFromInterfaceOrientation:detailFrom];  
  10.       
  11.     CGFloat deviceHeight = [[UIScreen mainScreen]applicationFrame].size.height;  
  12.     if (1024 == deviceHeight) {                     //只有当设备是横屏显示时  
  13.         [self splitViewController:splitController willShowViewController:masterController invalidatingBarButtonItem:nil];   // 分割视图在  添加密码框时,启动时不会走此方法,所以需要手动调用  
  14.     }  
  15.     else  
  16.     {  
  17.         [self splitViewController:splitController willHideViewController:masterController withBarButtonItem:profileBarButtonItem forPopoverController:self.currentPopover];  
  18.     } 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值