博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OC开发_Storyboard——iPad开发
阅读量:7219 次
发布时间:2019-06-29

本文共 2503 字,大约阅读时间需要 8 分钟。

iPad开发(Universal Applications)

一、iPad

 1、判断是否在iPad上

     BOOL iPad = ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad); 

 

二、UISplitViewController 分割视图控制器

 1、UISplitViewController 分割视图控制器(顶级视图,不能放在Nav或者其他视图中)

  (1  可以通过 if (self.splitViewController) 判断是否是分割视图中  

      @property (strong) UISplitViewController *splitViewController;

  (2   控制器分为两部分,0 代表 Master, 1 就是指 Detail

      @property (copy) NSArray *viewControllers;

   比如说 UIViewController *detailVC = self.splitViewController.viewControllers[1];   如果我们处在分割视图中,它会返回detail,否则它会返回nil,这个也可以用来判断是否在分割视图中

 2、delegate 协议(需要在ViewDidLoad之前就定义好协议,可能是在awakeFromNib

  (1 主要用来控制master和detail何时出现

  (2 比如

- (BOOL)splitViewController:(UISplitViewController *)sender shouldHideViewController:(UIViewController *)master inOrientation:(UIInterfaceOrientation)orientation

{

     return NO; //从不隐藏左边的master

- (BOOL)splitViewController:(UISplitViewController *)sender shouldHideViewController:(UIViewController *)master inOrientation:(UIInterfaceOrientation)orientation

{

      return UIInterfaceOrientationIsPortrait(orientation);//只在竖屏中隐藏master(对应的detail 的左上角会有一个按钮可以切换回去,但是如果没有实现委托协议的话就没有这个按钮)

           - (void)splitViewController:(UISplitViewController *)sender willHideViewController:(UIViewController *)master withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popover

           {

barButtonItem.title = master.title;

self.navigationItem.leftBarButton = barButtonItem;//相当于把返回master 的按钮设置为 UINavigationController的barButtonItem

 3、master中的点击如何在detail中响应呢?

   (1 通过action,通过prepareSegue一样

     - (IBAction)doit

    {

         id detailViewController = self.splitViewController.viewControllers[1];

         [detailViewController setSomeProperty:...];

   } 

  (2 segue :但是它会更新整个视图控制器,包括我们设置的上面提到的navigtionItem的按钮,都会重新设置,所以很一般不采用

 

三、Popovers弹窗控制器

   (不属于UIViewController,是一个NSObject,主要控制另外一个视图控制器弹出到屏幕上)

 1、获得要弹出的视图控制器

   @property (nonatomic, strong) UIViewController *contentViewController; //通过先获得这个要弹出的视图控制器

 2、创建一个Popovers 的 segue

   (需要注意的是,你在prepaeForsegue中获得的segue,是一个UIStoryboardPopoverSegue )

1 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender2 {3     if ([segue isKindOfClass:[UIStoryboardPopoverSegue class]]) {4         UIPopoverController *popoverController =5             ((UIStoryboardPopoverSegue *)segue).popoverController;6 ...7 } }

    3、点击Popovers之外的地方,一般是默认隐藏的,但是如果它是弹窗控制器中这个视图数组中的视图的话,并不会消失隐藏

     @property (copy) NSArray *passthroughViews; 

   但是我们可以让它隐藏:

- (void)dismissPopoverAnimated:(BOOL)animated;  

- (void)popoverControllerDidDismissPopover:(UIPopoverController *)sender; 

 

 

 

 

 

转载地址:http://qatym.baihongyu.com/

你可能感兴趣的文章
linux高编IO-------tmpnam和tmpfile临时文件
查看>>
微信的机器人开发
查看>>
从零开始学Java(二)基础概念——什么是"面向对象编程"?
查看>>
近期面试总结(2016.10)
查看>>
CodeForces 525D Arthur and Walls :只包含点和星的矩阵,需要将部分星变成点使满足点组成矩形 : dfs+思维...
查看>>
积累_前辈的推荐
查看>>
strcpy和memcpy的区别《转载》
查看>>
在windows平台下electron-builder实现前端程序的打包与自动更新
查看>>
DroidPilot V2.1 手写功能特别版
查看>>
COOKIE欺骗
查看>>
js 强转规范解读
查看>>
ACdream - 1735:输油管道
查看>>
golang 获取get参数
查看>>
服务器状态码
查看>>
非小型电子商务系统设计经验分享
查看>>
Video Target Tracking Based on Online Learning—深度学习在目标跟踪中的应用
查看>>
深度学习理论解释基础
查看>>
遗传算法
查看>>
将web网站移动化
查看>>
Application-Session-Cookie
查看>>