求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
     
   
分享到
Iphone开发导航控制器实现视图的分层切换
(UINavigationController)
 

作者:admin ,发布于2012-9-10,来源:博客

 

Iphone和android手机的一个不同的地方是,大部分的android手机都 有返回键,而Iphone只有一个home键,所以我们会发现在Iphone的大部分应用中会在顶部有一个导航条,比如系统的设置界面,该导航条完全按照 栈的方式来管理,所以可以很方便的实现后退的操作:

今天下了春雨,心情不错,总结一下导航条的使用;

导航栏这个控件称为UINavigationController,常常用来作根视图 控制器,生成对象后可以用该对象push UIViewController的对象,这样该UIViewController的对象就加到导航条的下部了,可以给视图控制器加title,会显示在 导航栏上,也可以修改返回键的title,如右上图的左上角的setting按钮,如果默认的话是没有viewController的title的,返回 键的title会是viewController的名字,接下来我们要用Xcode4.3中最基础的模板EmptyApplication来从头创建一个 最原始的导航demo;

首先,新建一个project,选择EmptyApplication模板;

这样生成后是只有委托类的:

然后new两个ViewController出来,为了方便操作记得要附上xib文 件;起名为FirstViewController,SecondViewController,在FirstViewController的xib文件 中拖上一个button,连接一个nextClick方法用来切换到下一个视图;

现在开始操作代码

AppDelegate.h:

[plain] view plaincopy

<span style="font-size:18px;">#import <UIKit/UIKit.h>  
  
@interface AppDelegate : UIResponder <UIApplicationDelegate>  
  
@property (strong, nonatomic) UIWindow *window;  
@property (strong, nonatomic)  UINavigationController *naviController;  
@end</span>  

AppDelegate.m:

[plain] view plaincopy

<span style="font-size:18px;">#import "AppDelegate.h"  
#import "FirstViewController.h"  
@implementation AppDelegate  
  
@synthesize window = _window;  
@synthesize naviController;  
  
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
{  
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];  
      
    //生成一个ViewControlle对象作为导航栏的第一个视图;  
    FirstViewController *firstView = [[FirstViewController alloc]init];  
      
    naviController = [[UINavigationController alloc]initWithRootViewController:firstView];  
    //将该导航栏作为根视图控制器;  
    self.window.rootViewController = naviController ;  
    [self.window makeKeyAndVisible];  
    return YES;  
}  
</span>   

FirstViewController.h:

[plain] view plaincopy

<span style="font-size:18px;">#import <UIKit/UIKit.h>  
  
@interface FirstViewController : UIViewController  
- (IBAction)nextClick:(id)sender;  
  
@end</span>   

FirstViewController.m:

[plain] view plaincopy

<span style="font-size:18px;">#import "FirstViewController.h"  
#import "SecondViewController.h"  
@interface FirstViewController ()  
  
@end  
  
@implementation FirstViewController  
  
- (IBAction)nextClick:(id)sender {  
    SecondViewController *secondView = [[SecondViewController alloc]init];  
    [self.navigationController pushViewController:secondView animated:YES];  
}</span>   

上面只是贴出了需要修改的代码,其余自动生成的都不用管,甚至SecondViewController都没有进行操作,所以我们会看到这样一种最简单的导航控制效果;


相关文章

深度解析:清理烂代码
如何编写出拥抱变化的代码
重构-使代码更简洁优美
团队项目开发"编码规范"系列文章
相关文档

重构-改善既有代码的设计
软件重构v2
代码整洁之道
高质量编程规范
相关课程

基于HTML5客户端、Web端的应用开发
HTML 5+CSS 开发
嵌入式C高质量编程
C++高级编程

 
分享到
 
 
     


android人机界面指南
Android手机开发(一)
Android手机开发(二)
Android手机开发(三)
Android手机开发(四)
iPhone消息推送机制实现探讨
手机软件测试用例设计实践
手机客户端UI测试分析
手机软件自动化测试研究报告
更多...   


Android高级移动应用程序
Android应用开发
Android系统开发
手机软件测试
嵌入式软件测试
Android软、硬、云整合


领先IT公司 android开发平台最佳实践
北京 Android开发技术进阶
某新能源领域企业 Android开发技术
某航天公司 Android、IOS应用软件开发
阿尔卡特 Linux内核驱动
艾默生 嵌入式软件架构设计
西门子 嵌入式架构设计
更多...