iPad 如何创建UISplitViewController应用程序
2012-04-24 14:05
627 查看
原文摘自:UISplitViewController的使用。
首先是创建一个工程:ipad.demo.
然后创建一个DetailViewController和RootViewController,其中RootViewController继承UITableViewController。同事创建两个相应的xib文件。删除ipad_demoViewController.相应的类列表如下:
然后修改ipad_demoAppDelegate:
.h文件:
添加UISplitViewController容器:
IB中的控件和相应的事件相联系:连接过程是按住control键,然后点击ipad_demo App Delegate,连接到Split View Controller,然后选择自定义的事件即可,最后的结果如下:
最后在把相应的容器换成自定义的容器:实现的方法是
最后的结果是:
现在我们在实现DetailViewController:
首先修改其相应的文件:
.h文件修改如下:
添加相应的控件,并且相应的组建和相应的事件相关联。
最后我们实现RootViewController:
首先修改相应的文件:
.h文件如下:
.m文件如下:
相应的事件和控件相联系。
运行结果如下:
UISplitViewController在ipad中的使用
ipad的屏幕比iphone大,所以在界面上,ipad比iphone多一个UISplitViewController,用来实现ipad在横屏时,分两栏显示所需要的界面,可以一边是目录一边是具体的内容。下面我将详细的阐述UISplitViewController在ipad中的使用。首先是创建一个工程:ipad.demo.
然后创建一个DetailViewController和RootViewController,其中RootViewController继承UITableViewController。同事创建两个相应的xib文件。删除ipad_demoViewController.相应的类列表如下:
然后修改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文件:#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
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after app launch.
[window addSubview:splitViewController.view];
[window makeKeyAndVisible];
return YES;
}
修改MainWindow.xib文件:// Override point for customization after app launch.
[window addSubview:splitViewController.view];
[window makeKeyAndVisible];
return YES;
}
添加UISplitViewController容器:
IB中的控件和相应的事件相联系:连接过程是按住control键,然后点击ipad_demo App Delegate,连接到Split View Controller,然后选择自定义的事件即可,最后的结果如下:
最后在把相应的容器换成自定义的容器:实现的方法是
最后的结果是:
现在我们在实现DetailViewController:
首先修改其相应的文件:
.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文件修改如下:@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
#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文件:@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
添加相应的控件,并且相应的组建和相应的事件相关联。
最后我们实现RootViewController:
首先修改相应的文件:
.h文件如下:
#import <UIKit/UIKit.h>
@class DetailViewController;
@interface RootViewController : UITableViewController {
IBOutlet DetailViewController *detailViewController;
}
@property (nonatomic,retain) DetailViewController *detailViewController;
@end
@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文件:// 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];
}
相应的事件和控件相联系。
运行结果如下:
相关文章推荐
- iPad 用xib如何创建UISplitViewController应用程序
- ipad 自定义UISplitViewController
- ipad 自定义UISplitViewController
- ios-使用iPad专用API(UISplitViewController)控制器
- Ipad项目初涉UISplitViewController
- IPad专有API UISplitViewController开发菜单浏览demo
- iOS:iPad和iPhone开发的异同(UIPopoverController、UISplitViewController)
- iPad 自定义UISplitViewController 无法横屏的解决办法。
- iPad开发专有API-UIPopoverViewController和UISplitViewController
- Ipad UISplitViewController
- UISplitViewController - iPad分屏视图控制器
- UISplitViewController - iPad分屏视图控制器
- ipad UISplitViewController 导航视图控制器标题设置
- 【iOS开发-107】UISplitViewController:如何取得master和detail控制器,核心在于如何运用代理
- UISplitViewController在Portrait时也为分割窗口
- UISplitViewController的使用
- iPad for iPhone Developers 101: UISplitView Tutorial
- iPad页面管理——Split ViewController
- UISplitViewController 分割视图控制器,自定义左右视图控制器视图大小
- IOS控件之分隔条控制器UISplitViewController