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,一经查实,立即删除!

相关文章

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

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

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

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

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…

硬盘分区与故障排解速查手册(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;

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…

杀鸡焉用牛刀!放下Windbg,让dotnet-stack来快速定位死锁原因

我们用来分析CPU过高、死锁问题的常见方案是使用Windbg分析dump文件。但是这种方式存在一些缺点&#xff0c;比如dump文件过大难以下载&#xff0c;windbg使用过于复杂难以掌握等。这里介绍一个小工具dotnet-stack&#xff0c;帮助我们检查托管代码调用堆栈&#xff0c;快速定位…

数学中那些非常奇葩的证明

全世界只有3.14 % 的人关注了青少年数学之旅一、费马大定理证明证&#xff1a;是无理数假设是有理数&#xff0c;p和q是互素正整数那么移项得又由费马大定理可知&#xff1a;与费马大定理(Fermats last therorem)矛盾, Q.E.D. &#xff08;也可易证2的n分之一次方且n属于大于2的…

使用 Minimal API 改造动态文件提供者

使用 Minimal API 改造动态文件提供者Intro之前介绍过一个基于动态文件提供者来实现静态网站的动态更新&#xff0c;可以参考 ASP.NET Core 实现一个简单的静态网站滚动更新&#xff0c;在 Minimal API 出现之后想改造成 Minimal API 的写法&#xff0c;但是由于之前版本的 Min…

[导入]体验Asp.Net Mvc Preview5(3)-探索ModelBinder的工作原理

摘要: 在前面的两篇文章中,我们研究了Asp.Net Mvc Preview5的ViewEingine的改进,从本篇开始,我们开始研究Preview5中的新特性:ModelBinder,首先我们来了解下什么是ModelBinder特性,这有什么用处,在以前的版本中,如果我们要在Action中获取数据,一般有三种方式,一是通过Action的参…

复盘:我的三个月远程办公实践,有自由,也有代价

这是头哥侃码的第244篇原创有人说&#xff0c;人生就是一个不断尝试的过程。我觉得&#xff0c;有时候这个词其实不准确&#xff0c;因为每个人的性格不同&#xff0c;成长经历及运势不同&#xff0c;所以对 “尝试” 俩字的理解也就不同。在我还是孩子的时候&#xff0c;几乎所…

Silverlight专题(10)- WatermarkedTextBox使用

问题&#xff1a; 之前的Silverlight版本都有一个WatermarkedTextBox控件 但是到了Silverlight 2 Beta2版本&#xff0c;由于和WPF兼容的考虑 WatermarkedTextBox被移除了 虽然之前我有看到消息说Silverlight 2正式Release的时候会给TextBox一个Watermark属性 但是Silverlight …

90后一代人还能通过攒钱改变现状吗?

全世界只有3.14 % 的人关注了青少年数学之旅每次打开公号&#xff0c;扑面而来一阵阵焦虑&#xff1a;95后毕业3个月就买房&#xff0c;你的同龄人正在抛弃你毕业3年&#xff0c;年薪超100万&#xff1a;赚钱&#xff0c;是一种修行一线城市财务自由门槛2.9亿&#xff0c;看看你…

从高德侯军到《李嘉诚:商者无域》

从高德侯军到《李嘉诚&#xff1a;商者无域》 【编者按】转载这篇文章是因为看到了业内著名企业高德董事长侯军跻身2008胡润排行榜&#xff0c;让人不禁联想起高德在业内一贯的潜行风格&#xff0c;而侯军先生也颇有点“忍者神龟”的隐喻&#xff0c;在业内企业家当中属闷声发大…

测试龙芯 LoongArch .NET之 使用 FastTunnel 做内网穿透远程计算机

龙芯3A5000 已经上市&#xff0c;从老伙计哪里搞来一台3A5000 机器&#xff0c;安装统信UOS。使用体验上看还可以&#xff0c;就是软件生态急需建设&#xff0c;软件生态的建设上自然有我dotnet 的一份力量。龙芯团队已经完成了LoongArch 的.NET Core 3.1版本的研发&#xff0c…

利用jquery给指定的table动态添加一行、删除一行

今天在项目中&#xff0c;刚好用到给指定的table添加一行、删除一行&#xff0c;就直接找google&#xff0c;搜出来的东西不尽如人意&#xff0c;不是功能不好就是千篇一律&#xff0c;简直浪费时间还不讨好&#xff0c;于是乎就自己动手封装个&#xff0c;现就把代码分享出来&…

求求你把输入法调小一点... | 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅