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

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

iPad 用xib如何创建UISplitViewController应用程序

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

iPad 用xib如何创建UISplitViewController应用程序

 

然后修改ipad_demoAppDelegate:

.h文件

#import <UIKit/UIKit.h> 
#import "RootViewController.h" 
#import "DetailViewController.h" 
@class ipad_demoViewController; 

@interface ipad_demoAppDelegate : NSObject <UIApplicationDelegate> { 
    UIWindow *window; 
   UISplitViewController *splitViewController; 
    rootViewController *rootViewController; 
    DetailViewController *detailViewController; 

@property (nonatomic,retain) IBOutlet UIWindow *window; 
@property (nonatomic,retain) IBOutlet UISplitViewController *splitViewController; 
@property (nonatomic,retain) IBOutlet RootViewController *rootViewController; 
@property (nonatomic,retain)  IBOutlet DetailViewController *detailViewController; 
@end

.m文件

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    // Override point for customization after app launch. 
    [window addSubview:splitViewController.view]; 
    [window makeKeyAndVisible]; 

    return YES; 
}

@L_149_11@mainWindow.xib文件

添加UISplitViewController容器:

iPad 用xib如何创建UISplitViewController应用程序

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

iPad 用xib如何创建UISplitViewController应用程序

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

iPad 用xib如何创建UISplitViewController应用程序

最后的结果是:

iPad 用xib如何创建UISplitViewController应用程序

现在我们在实现DetailViewController:

  1.   首先修改相应的文件

      .h文件修改如下:

#import <UIKit/UIKit.h> 
@interface DetailViewController : UIViewController { 
   IBOutlet UILabel *lable; 
    IBOutlet UISwitch *switch1; 
    nSIndexPath *index; 

-(void)deetail:(id)sender; 
@property (nonatomic,retain) UILabel *lable; 
@property (nonatomic,retain) UISwitch *switch1; 
@end

   .m文件修改如下:

#import "DetailViewController.h" 
@implementation DetailViewController 
@synthesize lable,switch1; 
- (void)viewDidLoad { 
    [super viewDidLoad]; 

-(void)viewWillAppear:(BOOL)animated 
{ 


-(void)deetail:(id)sender 
{ 
    index=sender; 
    self.lable.text=[NSString StringWithFormat:@"Row %d,section %d",[index row],[index section]]; 
    if ([index row]%2==0) { 
        self.switch1.on=YES; 
    }else { 
        self.switch1.on=NO; 
    } 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return YES; 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 

- (void)viewDidUnload { 
    [super viewDidUnload]; 
    self.lable=nil; 
    self.switch1=nil; 

- (void)dealloc { 
    [self.lable release]; 
    [self.switch1 release]; 
    [super dealloc]; 

@end

  2.修改相应的xib文件

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

iPad 用xib如何创建UISplitViewController应用程序

最后我们实现RootViewController:

  1. 首先修改相应的文件

    .h文件如下:

#import <UIKit/UIKit.h> 
@class DetailViewController; 
@interface RootViewController : UITableViewController { 

   IBOutlet DetailViewController *detailViewController; 

@property (nonatomic,retain) DetailViewController *detailViewController; 
@end

.m文件如下:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    // Return the number of sections. 
    return 2; 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    // Return the number of rows in the section. 
    return 7; 
}

 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowATindexPath:(NSIndexPath *)indexPath { 
    static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reusEIDentifier:CellIdentifier] autorelease]; 
    } 
    // Configure the cell… 
    cell.textLabel.text=[NSString StringWithFormat:@"ROW %d section %d",[indexPath row],[indexPath section]]; 
    return cell; 
}

 

- (void)tableView:(UITableView *)tableView didSELEctRowATindexPath:(NSIndexPath *)indexPath { 
    // Navigation logic may go here. Create and push another view controller. 
    // DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil]; 
    // [self.navigationController pushViewController:detailViewController animated:YES]; 
    // [detailViewController release]; 
   [detailViewController deetail:indexPath]; 
}

2、修改相应的xib文件

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

iPad 用xib如何创建UISplitViewController应用程序

运行结果如下:

iPad 用xib如何创建UISplitViewController应用程序