iphone开发之导航控制器的使用
来源:互联网 发布:手机淘宝删除不了评价 编辑:程序博客网 时间:2024/06/08 13:11
我们在应用开发时经常需要实现很多功能,这时常常需要构建多视图应用程序,在ios平台下我们可以使用UINavigationController(导航控制器)来实现。
新建一个基于View的项目,修改AppDelegate.h中的代码如下:
#import <UIKit/UIKit.h>@class ViewController;@interface AppDelegate : UIResponder <UIApplicationDelegate>@property (strong, nonatomic) UIWindow *window;@property (strong, nonatomic) ViewController *viewController;@property (nonatomic, retain) UINavigationController *navController;@end
我们定义了一个导航控制器,下面我们为导航控制器添加跟视图。在AppDelegate.m中修改一下代码:
@synthesize navController;- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Override point for customization after application launch. self.navController = [[UINavigationController alloc] init]; self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; [self.navController pushViewController:self.viewController animated:YES]; [self.window addSubview:self.navController.view]; [self.window makeKeyAndVisible]; return YES;}
这里主要是初始化我们的导航控制器,然后为导航控制器添加子视图并在窗口中显示。
现在我们要在ViewController.h中定义一个按钮事件,用来响应我们根视图中的按钮事件。(如图中start按钮)
- (IBAction)startPressed:(id)sender;
然后再ViewController.m中实现该方法:
- (IBAction)startPressed:(id)sender{ FirstViewController *firstViewController = [[FirstViewController alloc] init]; [self.navigationController pushViewController:firstViewController animated:YES]; [firstViewController release];}
我们定义一个新的的视图控制器firstViewController并添加到导航控制器中。FirstViewController实现了TableView如图:
关于TableView控件的使用可参考我这篇博文:iphone开发之TableView控件实例
为了程序更直观,我们在viewDidLoad()方法中添加如下代码为我们的应用程序添加标题:
- (void)viewDidLoad{ [super viewDidLoad];// Do any additional setup after loading the view, typically from a nib. self.title = @"Cloay";}
在FirstViewController.m 中添加如下代码:
#pragma mark - Table view delegate- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ // Navigation logic may go here. Create and push another view controller. SecondViewController *detailViewController = [[SecondViewController alloc] init]; NSUInteger row = [indexPath row]; detailViewController.title = [self.listData objectAtIndex:row]; [self.navigationController pushViewController:detailViewController animated:YES]; }通过该方法我们实现了从FirstLevel进入SecondLevel如下图:如果我们选了Kobe
如果选了James:
我们看到图中有一张图片和一个Next按钮,你一定想到了我们要在试图中添加一个ImageView控件并要为Next按钮添加事件代码如下:
- (IBAction)nextPressed:(id)sender{ ThirdViewController *thirdViewController = [[ThirdViewController alloc] init]; [self.navigationController pushViewController:thirdViewController animated:YES]; [thirdViewController release];}
上面我们为按钮添加响应,我们还要在viewDidLoad中为ImageView设置图片:
- (void)viewDidLoad{ [super viewDidLoad]; // Do any additional setup after loading the view from its nib.// self.title = @"Second Level"; NSLog(@"%@", self.title); if ([self.title isEqualToString:@"Kobe"]) { UIImage *portrait = [UIImage imageNamed:@"Kobe-Bryant.jpg"]; self.image.image = portrait; [portrait release]; }else if([self.title isEqualToString:@"James"]){ UIImage *portrait = [UIImage imageNamed:@"James.jpg"]; self.image.image = portrait; [portrait release]; }else{ UIImage *portrait = [UIImage imageNamed:@"ladybug.jpg"]; self.image.image = portrait; [portrait release]; } }
我们根据title来设置图片。点击Next按钮进入ThirdLevel如图:
ThirdViewController中很简单只有一个Label控件,这里就不在贴代码了。
怎么样多视图程序就这样实现了,这只是一个简单的demo,你可以实现自己的功能。
好了就写这么多,有什么问题请留言,大家一起学习交流!
说明:转载请注明出处!
- iphone开发之导航控制器的使用
- iphone开发导航控制器的使用
- iphone开发导航控制器的使用
- iPhone开发之导航控制器的预习——UINavigationController导航控制器的学习
- 导航控制器的使用
- iOS 开发之 导航控制器
- iPhone导航控制器的重要“方法”
- iPhone导航控制器的重要“方法”
- iOS开发学习之导航控制器和应用程序的生命周期
- iphone开发之自定义导航
- Iphone开发(十三)用导航控制器实现视图的分层切换(UINavigationController)
- Iphone开发(十三)用导航控制器实现视图的分层切换(UINavigationController)
- Iphone开发(十三)用导航控制器实现视图的分层切换(UINavigationController)
- Iphone开发用导航控制器实现视图的分层切换(UINavigationController)
- iPhone开发之工具栏控制器UITabBarController的预习
- iOS导航控制器的使用
- UINavigation导航控制器的使用
- 使用导航控制器的笔记
- OpenCV码源笔记——tree_engine(CvDTree,CvBoost,CvRTrees,CvERTrees,CvGBTrees)
- 私有IP
- MFC 文本框
- 进程(一)操作系统原理及Linux进程源语
- Adaboost算法介绍
- iphone开发之导航控制器的使用
- 第十周任务一
- jdom学习:读取xml文件
- 网页平台
- Arm-linux-gcc-4.3.2安装步骤
- C++判断json字符串合法性
- 怎样简单检测socket的健康状态
- 今天学习了itext
- c#实现的INI文件读写