ios之UISplitViewController

iPad的屏幕比iPhone大,所以在界面上,iPad比iPhone多一个UISplitViewController,用来实现iPad在横屏时,分两栏显示所需要的界面,可以一边是目录一边是具体的内容。下面我将详细的阐述UISplitViewController在ipad中的使用。

首先是创建一个工程:iPad.demo.

<IGNORE_JS_OP style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; FONT: 14px/21px Tahoma, 'Microsoft Yahei', Simsun; WORD-WRAP: break-word; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(68,68,68); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">image23.png 


然后创建一个DetailViewController和RootViewController,其中RootViewController继承UITableViewController。同事创建两个相应的xib文件。删除ipad_demoViewController.相应的类列表如下:

<IGNORE_JS_OP style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; FONT: 14px/21px Tahoma, 'Microsoft Yahei', Simsun; WORD-WRAP: break-word; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(68,68,68); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">image24.png 


然后修改ipad_demoAppDelegate:

.h文件:

  1. #import <UIKit/UIKit.h> 
  2. #import "RootViewController.h" 
  3. #import "DetailViewController.h" 
  4. @class ipad_demoViewController;
  5. @interface ipad_demoAppDelegate : NSObject <UIApplicationDelegate> { 
  6.     UIWindow *window; 
  7.    UISplitViewController *splitViewController; 
  8.     RootViewController *rootViewController; 
  9.     DetailViewController *detailViewController; 
  10. }
  11. @property (nonatomic, retain) IBOutlet UIWindow *window; 
  12. @property (nonatomic, retain) IBOutlet UISplitViewController *splitViewController; 
  13. @property (nonatomic, retain) IBOutlet RootViewController *rootViewController; 
  14. @property (nonatomic, retain)  IBOutlet DetailViewController *detailViewController; 
  15. @end
复制代码



.m文件:

  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
  2.     // Override point for customization after app launch. 
  3.     [window addSubview:splitViewController.view]; 
  4.     [window makeKeyAndVisible];
  5.     return YES; 
  6. }
复制代码



修改MainWindow.xib文件:

添加UISplitViewController容器:

<IGNORE_JS_OP style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; FONT: 14px/21px Tahoma, 'Microsoft Yahei', Simsun; WORD-WRAP: break-word; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(68,68,68); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">image25.png 


IB中的控件和相应的事件相联系:连接过程是按住control键,然后点击ipad_demo App Delegate,连接到Split View Controller,然后选择自定义的事件即可,最后的结果如下:

<IGNORE_JS_OP style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; FONT: 14px/21px Tahoma, 'Microsoft Yahei', Simsun; WORD-WRAP: break-word; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(68,68,68); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">image26.png 


最后在把相应的容器换成自定义的容器:实现的方法是

<IGNORE_JS_OP style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; FONT: 14px/21px Tahoma, 'Microsoft Yahei', Simsun; WORD-WRAP: break-word; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(68,68,68); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">image27.png 


最后的结果是:

<IGNORE_JS_OP style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; FONT: 14px/21px Tahoma, 'Microsoft Yahei', Simsun; WORD-WRAP: break-word; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(68,68,68); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">image28.png 


现在我们在实现DetailViewController:

首先修改其相应的文件:
.h文件修改如下:

  1. #import <UIKit/UIKit.h> 
  2. @interface DetailViewController : UIViewController { 
  3.    IBOutlet UILabel *lable; 
  4.     IBOutlet UISwitch *switch1; 
  5.     NSIndexPath *index; 
  6. } 
  7. -(void)deetail:(id)sender; 
  8. @property (nonatomic,retain) UILabel *lable; 
  9. @property (nonatomic,retain) UISwitch *switch1; 
  10. @end
复制代码




.m文件修改如下:

  1. #import "DetailViewController.h" 
  2. @implementation DetailViewController 
  3. @synthesize lable,switch1; 
  4. - (void)viewDidLoad { 
  5.     [super viewDidLoad]; 
  6. } 
  7. -(void)viewWillAppear:(BOOL)animated 
  8. {
  9. } 
  10. -(void)deetail:(id)sender 
  11. { 
  12.     index=sender; 
  13.     self.lable.text=[NSString stringWithFormat:@"Row %d,section %d",[index row],[index section]]; 
  14.     if ([index row]%2==0) { 
  15.         self.switch1.on=YES; 
  16.     }else { 
  17.         self.switch1.on=NO; 
  18.     } 
  19. } 
  20. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
  21.     return YES; 
  22. } 
  23. - (void)didReceiveMemoryWarning { 
  24.     [super didReceiveMemoryWarning]; 
  25. } 
  26. - (void)viewDidUnload { 
  27.     [super viewDidUnload]; 
  28.     self.lable=nil; 
  29.     self.switch1=nil; 
  30. } 
  31. - (void)dealloc { 
  32.     [self.lable release]; 
  33.     [self.switch1 release]; 
  34.     [super dealloc]; 
  35. } 
  36. @end
复制代码



2.修改相应的xib文件:

添加相应的控件,并且相应的组建和相应的事件相关联。

<IGNORE_JS_OP style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; FONT: 14px/21px Tahoma, 'Microsoft Yahei', Simsun; WORD-WRAP: break-word; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(68,68,68); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">image29.png 


最后我们实现RootViewController:

首先修改相应的文件:
.h文件如下:

  1. #import <UIKit/UIKit.h> 
  2. @class DetailViewController; 
  3. @interface RootViewController : UITableViewController {
  4.    IBOutlet DetailViewController *detailViewController; 
  5. } 
  6. @property (nonatomic,retain) DetailViewController *detailViewController; 
  7. @end
复制代码



.m文件如下:

  1. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
  2.     // Return the number of sections. 
  3.     return 2; 
  4. }
  5. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
  6.     // Return the number of rows in the section. 
  7.     return 7; 
  8. }
  9. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
  10.     static NSString *CellIdentifier = @"Cell"; 
  11.     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
  12.     if (cell == nil) { 
  13.         cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
  14.     } 
  15.     // Configure the cell… 
  16.     cell.textLabel.text=[NSString stringWithFormat:@"ROW %d section %d",[indexPath row],[indexPath section]]; 
  17.     return cell; 
  18. }
  19. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
  20.     // Navigation logic may go here. Create and push another view controller. 
  21.     // DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil]; 
  22.     // [self.navigationController pushViewController:detailViewController animated:YES]; 
  23.     // [detailViewController release]; 
  24.    [detailViewController deetail:indexPath]; 
  25. }
复制代码



2、修改相应的xib文件:

相应的事件和控件相联系。

<IGNORE_JS_OP style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; FONT: 14px/21px Tahoma, 'Microsoft Yahei', Simsun; WORD-WRAP: break-word; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(68,68,68); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">image30.png 


运行结果如下:

<IGNORE_JS_OP style="WIDOWS: 2; TEXT-TRANSFORM: none; BACKGROUND-COLOR: rgb(255,255,255); TEXT-INDENT: 0px; FONT: 14px/21px Tahoma, 'Microsoft Yahei', Simsun; WORD-WRAP: break-word; WHITE-SPACE: normal; ORPHANS: 2; LETTER-SPACING: normal; COLOR: rgb(68,68,68); WORD-SPACING: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">image31.png 

2011-3-27 14:53:48 上传
下载附件 (43.59 KB)




源代码: http://easymorse-iphone.googlecode.com/svn/trunk/ipad.demo/

转载于:https://www.cnblogs.com/yulang314/p/3550401.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/300243.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux安装toncat环境变量,linux下JDK,tomcat的安装与环境变量配置

先从网上下载jdk(jdk-1_5_0_02-linux-i586.rpm) &#xff0c;下载后放在/home目录中&#xff0c;当然其它地方也行。进入安装目录#cd /home#cp jdk-1_5_0_02-linux-i586.rpm /usr/local#cd /usr/local给所有用户添加可执行的权限#chmod 744 jdk-1_5_0_02-linux-i586.rpm.bin#./…

JavaScript直接导出Excel,Word

<HTML> <HEAD> <title>WEB页面导出为EXCEL文档的方法 </title> </HEAD><body><BR><table id "PrintA" width"100%" border"1" cellspacing"0" cellpadding"0" bgcol…

为什么日本的科学那么牛?

▲ 点击查看日本化学家吉野彰&#xff0c;因发明了现代锂离子电池&#xff08;LIB&#xff09;&#xff0c;成为了今年的诺贝尔化学奖得主&#xff0c;一起获得这个奖项的&#xff0c;还有斯坦利惠廷汉姆、古迪纳夫。吉野彰事实上&#xff0c;当我们往回看这些年诺贝尔奖获得…

技术分享|单元测试推广与实战-在全新的DDD架构上进行单元测试

源宝导读&#xff1a;单元测试是伴随软件工程出现和发展的&#xff0c;怎么做大家可能各有见解。本文介绍了单元测试中的反模式&#xff0c;强调了可测试性的重要性&#xff0c;并以 DDD 架构项目的迭代进程作为示例&#xff0c;演示了单元测试的组织过程&#xff0c;展示了单元…

CRM学习笔记(一)

被抽调学习CRM两个礼拜&#xff0c;要回java组了&#xff0c;以后接触机会应该不多了。记录下这段时间的学习总结&#xff0c;以备不时之需。 通过微软提供的视频教程&#xff0c;基本上你想了解的一些很基础的问题&#xff0c;都能找到入口处&#xff0c;剩下的就是通过sdk和在…

Object-C中的字符串对象1-不可变字符串

2019独角兽企业重金招聘Python工程师标准>>> #import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {autoreleasepool {NSString *str1"this is string A";NSString *str2"this is string B";NSString *temp;NSCom…

linux环境下作业调度,Linux集群环境下作业调度算法的研究与实现

摘要&#xff1a;集群计算环境中的作业调度接收用户提交的作业请求,并采用适当的调度策略选择计算节点资源来运行用户作业。作业调度策略决定了整个集群系统的效率,尤其是提交计算量大的作业时,良好的作业调度可以大大加快执行速度,因此,作业调度策略是提高集群系统执行并行作业…

硬盘分区与故障排解速查手册(1)

在所有计算机配件中&#xff0c;硬盘是一个比较特殊的角色&#xff0c;它不仅关系到系统的整体性能&#xff0c;而且用户的所有资料都保存在它的身上。 那么&#xff0c;硬盘该如何初始化呢&#xff1f;遇到硬盘故障该如何解决呢&#xff1f;一、大硬盘分区与格式化 硬盘分区是…

Ant Design Blazor 发布 0.9.0,共100+人贡献!

???? 截至这个版本&#xff0c;本项目一共迎来 101 位贡献者&#xff0c;是他们成就了这个项目&#xff01;在此感谢他们慷慨的贡献&#xff01;变更记录Tabs???? 增加路由服用多标签页组件 ReuseTabs。(demo) #1704 ElderJames???? 增加 OnClose 事件与 TabTempla…

人类究竟有多喜欢看热闹?! | 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅&#xff08;图源网络&#xff0c;侵权删&#xff09;

linux2.6添加新硬盘,Linux_TurboLinux11添加新硬盘方法,一.Linux的硬盘识别2.6 kernel - phpStudy...

2.6 kernel以后,linux会将识别到的硬件设备,在/dev/下建立相应的设备文件.如:sda表示第1块SCSI硬盘.hda表示第1块IDE硬盘(即连接在第1个IDE接口的Master口上).scd0表示第1个USB光驱.当添加了新硬盘后,在/dev目录下会有相应的设备文件产生.cciss的硬盘是个例外,它的设备文件在/d…

开始→运行→命令 总结大全

winver-检查Windows版本 wmimgmt.msc打开windows管理体系结构(WMI) wupdmgrwindows更新程序 wscriptwindows脚本宿主设置 write写字板 winmsd-系统信息 wiaacmgr-扫描仪和照相机向导 BR>  winchatXP自带局域网聊天 mem.exe显示内存使用情况 Msconfig.exe-系统配置实用程序…

Windbg在Managed App中设置函数断点的几种方法

本文介绍两种使用Windbg在Managed App中设置断点的方法。一种是在live Debug的时候&#xff0c;attach到了Process之后。另外一种是动态调试的时候&#xff0c;如何给几个模块的特定方法下一个断点。 使用Windbg在Native Code里面下断点是比较方便的&#xff0c;bp加上一个…

Python通过amqp消息队列协议中的Qpid实现数据通信

简介&#xff1a;这两天看了消息队列通信&#xff0c;打算在配置平台上应用起来。以前用过zeromq但是这东西太快了&#xff0c;还有就是rabbitmq有点大&#xff0c;新浪的朋友推荐了qpid&#xff0c;简单轻便。自己总结了下文档&#xff0c;大家可以瞅瞅。AMQP&#xff08;消息…

基于 Blazor 打造一款实时字幕

早先在录制视频的时候一直使用的是 obs-auto-subtitle 作为实时字幕展示功能。不过这个是以 OBS 插件的形式存在&#xff0c;不管是语言和功能上都有一定的限制。故而使用 Blazor server 实现一个。总体思路 实时字幕自然需要语音转文字的功能。考察了一些服务之后&#xff0c;…

一个数学系毕业的物理学家,是怎么拿到诺贝尔化学奖的?

全世界只有3.14 % 的人关注了青少年数学之旅2019年10月9日&#xff0c;这个“特别好”教授&#xff0c;1940年&#xff0c;“特别好”考上了耶鲁&#xff0c;1943年&#xff0c;“特别好”终于拿到数学学士学位。“特别好”特别沮丧&#xff0c;▲ “特别好”在牛津大学&#x…

U盘安装Linux挂载cd,U盘安装Ubuntu Server CD-ROM挂载失败

U盘安装 Ubuntu Server 发生Failed to copy file from CD-ROM问题解决方案使用UltraISO制做Ubuntu Server安装盘&#xff0c;在安装过程当中出现[!!] Load installer components from CD警告&#xff0c;这一步应该是安装文件检查步骤&#xff0c;没有检测到完整镜像文件而提示…

三十五例网络故障排除方法

上网时&#xff0c;我们经常会碰到这样、那样的网络故障&#xff0c;如何应付呢?今天&#xff0c;我们就针对一些常见的故障给大家分析一下! 1.故障现象:网络适配器(网卡)设置与计算机资源有冲突。   分析、排除:通过调整网卡资源中的IRQ和I/O值来避开与计算机其它资源的冲突…

遭遇“烧钱瓶颈” 优酷成本结构堪忧

从奥运结束至今&#xff0c;视频网站的短暂喧嚣终于渐归沉寂。尽管各个视频网站通过拼命烧钱而维系出的“看上去很美”的表象让很多人甚至开始盲目高呼&#xff1a;视频网站的春天已经到来&#xff0c;然而&#xff0c;从之前媒体曝出的“优酷网获千万过桥贷款疑是成本逼迫”到…

XHTML教会我的一些东西-1

第一次写博客&#xff0c;虽然以前写作文是我的强项&#xff0c;我也很能说&#xff0c;但是似乎现在这种能力正在退化。不知为什么&#xff0c;到了大学之后我就变得跟以前不一样&#xff0c;似乎是回到了小学时的我。我在大学开始变得内向、沉默、不去主动和别人交谈。因为这…