Iphone开发(十三)用导航控制器实现视图的分层切换(UINavigationController)

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 plain copy
  1. <span style="font-size:18px;">#import <UIKit/UIKit.h>  
  2.   
  3. @interface AppDelegate : UIResponder <UIApplicationDelegate>  
  4.   
  5. @property (strong, nonatomic) UIWindow *window;  
  6. @property (strong, nonatomic)  UINavigationController *naviController;  
  7. @end</span>  

AppDelegate.m:

[plain]  view plain copy
  1. <span style="font-size:18px;">#import "AppDelegate.h"  
  2. #import "FirstViewController.h"  
  3. @implementation AppDelegate  
  4.   
  5. @synthesize window = _window;  
  6. @synthesize naviController;  
  7.   
  8. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  
  9. {  
  10.     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];  
  11.       
  12.     //生成一个ViewControlle对象作为导航栏的第一个视图;  
  13.     FirstViewController *firstView = [[FirstViewController alloc]init];  
  14.       
  15.     naviController = [[UINavigationController alloc]initWithRootViewController:firstView];  
  16.     //将该导航栏作为根视图控制器;  
  17.     self.window.rootViewController = naviController ;  
  18.     [self.window makeKeyAndVisible];  
  19.     return YES;  
  20. }  
  21. </span>  

FirstViewController.h:

[plain]  view plain copy
  1. <span style="font-size:18px;">#import <UIKit/UIKit.h>  
  2.   
  3. @interface FirstViewController : UIViewController  
  4. - (IBAction)nextClick:(id)sender;  
  5.   
  6. @end</span>  

FirstViewController.m:

[plain]  view plain copy
  1. <span style="font-size:18px;">#import "FirstViewController.h"  
  2. #import "SecondViewController.h"  
  3. @interface FirstViewController ()  
  4.   
  5. @end  
  6.   
  7. @implementation FirstViewController  
  8.   
  9. - (IBAction)nextClick:(id)sender {  
  10.     SecondViewController *secondView = [[SecondViewController alloc]init];  
  11.     [self.navigationController pushViewController:secondView animated:YES];  
  12. }</span>  

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



转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/details/7484341


内容概要:本文档详细介绍了一个利用Matlab实现Transformer-Adaboost结合的时间序列预测项目实例。项目涵盖Transformer架构的时间序列特征提取与建模,Adaboost集成方法用于增强预测性能,以及详细的模型设计思路、训练、评估过程和最终的GUI可视化。整个项目强调数据预处理、窗口化操作、模型训练及其优化(包括正则化、早停等手段)、模型融合策略和技术部署,如GPU加速等,并展示了通过多个评估指标衡量预测效果。此外,还提出了未来的改进建议和发展方向,涵盖了多层次集成学习、智能决策支持、自动化超参数调整等多个方面。最后部分阐述了在金融预测、销售数据预测等领域中的广泛应用可能性。 适合人群:具有一定编程经验的研发人员,尤其对时间序列预测感兴趣的研究者和技术从业者。 使用场景及目标:该项目适用于需要进行高质量时间序列预测的企业或机构,比如金融机构、能源供应商和服务商、电子商务公司。目标包括但不限于金融市场的波动性预测、电力负荷预估和库存管理。该系统可以部署到各类平台,如Linux服务器集群或云计算环境,为用户提供实时准确的预测服务,并支持扩展以满足更高频率的数据吞吐量需求。 其他说明:此文档不仅包含了丰富的理论分析,还有大量实用的操作指南,从项目构思到具体的代码片段都有详细记录,使用户能够轻松复制并改进这一时间序列预测方案。文中提供的完整代码和详细的注释有助于加速学习进程,并激发更多创新想法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值