博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ios之UISplitViewController
阅读量:5951 次
发布时间:2019-06-19

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

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 上传
 




源代码: 

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

你可能感兴趣的文章
雅虎因发送垃圾短信面临50万人集体诉讼
查看>>
linux curl 命令(转)
查看>>
Qt设计器中,使用QToolBar控件的技巧
查看>>
安裝linux後的內核調優
查看>>
ESXi 5.1 安装 Mac OSX Lion 10.7
查看>>
ASA防火墙 NAT新版老版的配置方法对比
查看>>
中国五大顶级域名9月第一周新增3.2万 美国净减7.6万个
查看>>
11月苹果移动设备份额TOP10:iPhone 6上榜居六
查看>>
6月第4周全球域名注册商(国际域名)新增注册量TOP22
查看>>
2016年1月中国域名商解析量14强:排名变动大
查看>>
IntelliJ IDEA 14 license key gen
查看>>
ogg启动报错libnnz11.so: cannot open shared object file
查看>>
如何实现“持续集成”?闲鱼把研发效率翻了个翻
查看>>
IT人的“钱”景以及收入的两道坎
查看>>
PHP 5.4.8 添加系统服务命令
查看>>
jdk与jre的区别
查看>>
什么是https,和ssl什么关系,为什么用https
查看>>
27. 访问者模式
查看>>
好程序员web分享图片标签、绝对路径和相对路径
查看>>
Postman 如何处理上一个接口返回值作为下一个接口入参?
查看>>