iOS ipad和iphone兼容~demo

//联系人:石虎  QQ: 1224614774昵称:嗡嘛呢叭咪哄

/**

注意点: 1.看 GIF 效果图.

       2.看连线视图的效果图.

       3.看实现代码(直接复制实现效果).

*/

一、GIF 效果图:

图1~iphone:



图2~ipad:



二、连线视图的效果图:

图1:



图2:



图3:



图4:



图5:



三、实现代码:

=========================

===================================================

====================

控制器1:AppDelegate.h

//  AppDelegate.h

//  ipadiphone兼容dome

//

//  Created by 石虎 on 2017/8/8.

//  Copyright © 2017 shihu. All rights reserved.

//


#import <UIKit/UIKit.h>


@interface AppDelegate :UIResponder <UIApplicationDelegate>


@property (strong,nonatomic)UIWindow *window;


@property(nonatomic,strong)UISplitViewController *splitVC; // 左侧的导航栏控制器

@property(nonatomic,strong)NSArray *detailNavArr; //  存储iPad运行时,右侧详情导航视图控制器的数组

@property(nonatomic,strong)NSArray *detailVCArr; // 存储iPhone运行时,右侧需要进栈的视图控制器数组

@end



==========

======

====

控制器1:  AppDelegate.m 


//  AppDelegate.m

//  ipadiphone兼容dome

//

//  Created by 石虎 on 2017/8/8.

//  Copyright © 2017 shihu. All rights reserved.

//


#import "AppDelegate.h"

#import "SHMasterTableViewController.h"//主控制器

#import "SHFirstViewController.h"

#import "SHSecondViewController.h"

#import "SHThirdViewController.h"


@interface AppDelegate ()

@end

@implementation AppDelegate


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

    

    //主控制器

    SHMasterTableViewController *masterVC = [[SHMasterTableViewControlleralloc]initWithStyle:UITableViewStylePlain];

    //导航栏

    UINavigationController *masterNav = [[UINavigationControlleralloc]initWithRootViewController:masterVC];

    

    SHFirstViewController *firstVC = [[SHFirstViewControlleralloc]init];

    SHSecondViewController *secVC = [[SHSecondViewControlleralloc]init];

    SHThirdViewController *thirdVC = [[SHThirdViewControlleralloc]init];

    

    

    // 判断如果是iPad运行

    if([UIDevicecurrentDevice].userInterfaceIdiom ==UIUserInterfaceIdiomPad)

    {

        //把第一控制器添加到导航栏

        UINavigationController *firstNav = [[UINavigationControlleralloc]initWithRootViewController:firstVC];

        NSLog(@"----->>> %p",firstNav);

        

         //把第二控制器添加到导航栏

        UINavigationController *secNav = [[UINavigationControlleralloc]initWithRootViewController:secVC];

        

         //把第三控制器添加到导航栏

        UINavigationController *thirdNav = [[UINavigationControlleralloc]initWithRootViewController:thirdVC];

        

        //添加到存储iPad运行时,右侧详情导航视图控制器的数组中

        self.detailNavArr =@[firstNav,secNav,thirdNav];

        

        //初始化左侧的导航栏控制器

        self.splitVC = [[UISplitViewControlleralloc]init];

        self.splitVC.viewControllers =@[masterNav,firstNav];

        

        self.window.rootViewController = self.splitVC;

    }

#pragma mark - iPhone运行

    else

    {

        self.detailVCArr =@[firstVC,secVC,thirdVC];

        self.window.rootViewController = masterNav;

    }


    

    returnYES;

}


=========================

===================================================

====================

控制器2: SHMasterTableViewController.m

//  SHMasterTableViewController.m

//  ipadiphone兼容dome

//

//  Created by 石虎 on 2017/8/8.

//  Copyright © 2017 shihu. All rights reserved.

//


#import "SHMasterTableViewController.h"

#import "AppDelegate.h"


@interface SHMasterTableViewController ()

//

@property(nonatomic,strong)NSArray *titleArr;

@end


@implementation SHMasterTableViewController


- (void)viewDidLoad {

    [superviewDidLoad];

   

    //显示cell上的数据

     self.titleArr =@[@"运动",@"菜系",@"游戏"];

}


#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {

    

    return1;

}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    returnself.titleArr.count;

}



- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    

    static NSString *identifier =@"CELL";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];

    //缓存池

    if (cell ==nil) {

        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];

    }

    cell.textLabel.text = self.titleArr[indexPath.row];


    return cell;

}


-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{    

    AppDelegate *appDele = (AppDelegate *)[UIApplication sharedApplication].delegate;

    

    // 如果是iPad运行

    if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad)

    {

        appDele.splitVC.viewControllers = @[self.navigationController,appDele.detailNavArr[indexPath.row]];

        

    }else{// iPhone运行

        

        [self.navigationController pushViewController:appDele.detailVCArr[indexPath.row] animated:YES];

    }

}

@end


=========================

===================================================

====================

控制器3: SHFirstViewController.m

//

//  Created by 石虎 on 2017/8/8.

//  Copyright © 2017 shihu. All rights reserved.

//


#import "SHFirstViewController.h"

#import "SHDetailViewController.h"//详情控制器


@interface SHFirstViewController ()


@end


@implementation SHFirstViewController


- (void)viewDidLoad {

    [superviewDidLoad];

    //手势

    UITapGestureRecognizer *tap = [[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(gotoDetailVC)];

    tap.numberOfTapsRequired =2;

    [self.viewaddGestureRecognizer:tap];

}

//回调手势

-(void)gotoDetailVC

{

    SHDetailViewController *detailVC = [[SHDetailViewControlleralloc]init];

    [self.navigationControllerpushViewController:detailVCanimated:YES];

    NSLog(@"详情控制器----->%p",self.navigationController);

}

@end



=========================

===================================================

====================
控制器4:  SHDetailViewController.m

//  Created by 石虎 on 2017/8/8.

//  Copyright © 2017 shihu. All rights reserved.

//


#import "SHDetailViewController.h"


@interface SHDetailViewController ()


@end


@implementation SHDetailViewController


- (void)viewDidLoad {

    [superviewDidLoad];

    NSLog(@"我是第  详情  大控制器"); 

}

@end


=========================

===================================================

====================
控制器5:  SHSecondViewController.m


//  Created by 石虎 on 2017/8/8.

//  Copyright © 2017 shihu. All rights reserved.

//


#import "SHSecondViewController.h"


@interface SHSecondViewController ()


@end


@implementation SHSecondViewController


- (void)viewDidLoad {

    [superviewDidLoad];

    

    NSLog(@"我是第    大控制器");

}

@end


=========================

===================================================

====================
控制器6:  SHThirdViewController.m

//  Created by 石虎 on 2017/8/8.

//  Copyright © 2017 shihu. All rights reserved.

//


#import "SHThirdViewController.h"


@interface SHThirdViewController ()


@end


@implementation SHThirdViewController


- (void)viewDidLoad {

    [superviewDidLoad];

    

    NSLog(@"我是第    大控制器");

}

@end



=========================

===================================================

====================



谢谢!!!


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PP助手PC端为iOS6系统的iPhone/iPad用户提供崭新功能“正版免费体验”,不用越狱更加不用注册Appstore,勿需跳转iTunes即可实现一键快速下载正版资源。玩转IOS系统,手拿iPhone5无需越狱也能免费下载资源。 PC版可在线直接下载正版限免,一键升级正版应用,下载速度高于iTunes五倍。提供IOS全固件下载与SHSH管理,全面适用于iPhoneiPad、iTouch,让软件、游戏、音频、壁纸的管理更全面、更轻松、更快捷,掌上移动更精彩。 其优势特征: 为广大iPhone/iPad用户提供崭新功能“正版免费体验”,十万余款资源免费共享! 不用越狱更加不用注册Appstore,绕过iTunes即可实现一键快速下载资源。 1、完美支持IOS6系统,同步照片等媒体无需像其他工具要彻底关闭照片应用程序。2、全面优化的UI设计 ,运行流畅,使管理手机文件 ,照片,音乐快速便捷。 3、支持P2SP下载核心,加速资源的下载速度,高速资源下载体验。 4、直接一键升级正版应用,在线直接下载正版限免,并高于iTunes五倍的速度下载速度。让用户彻底摆脱iTunes。 5、SHSH备份,刷机,设备文件管理,各种实用的工具,方便初级苹果用户,兼顾苹果高级用户的所想所需。 其他说明:越狱必备!完美苹果助手工具。 更新版本:1.0.0beta版 主要功能: 1.本地APP库里增加对体验版APP的区分。 2.修正刷新设备信息时未刷新电池充电进度百分比的问题。 3.修正正版体验升级后新版本号和升级按钮不消失的问题。 4.修正WinXP下铃声导入到设备有时出错的问题。 5.修正WinXP下删除音乐有时出错的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值