OC学习之navigationController导航栏
来源:互联网 发布:weka数据挖掘教程 编辑:程序博客网 时间:2024/06/06 08:23
UIBarButtonItem *backItem = [[UIBarButtonItem alloc] init];backItem.title = @"返回";BackBarButtonItem: backItem]; UIBarButtonItem *backIt[self.navigationItem setem = [[UIBarButtonItem alloc] initWithTitle:@"嘿嘿"style:UIBarButtonItemStyleDone target:nil action:nil];[self.navigationItem setBackBarButtonItem: backItem]; //自适应设置View高度藏导航栏self.navigationController.navigationBar.hidden = NO;self.n#define kDevieceHeight [UIScreen mainScreen].bounds.size.height //显示隐avigationItem.title = @"hello";//设置标题(更改back名字)self.navigationItem.hidesBackButton = YES;//取消back触摸屏幕以外的地方,取消键盘:if (touch.tapCount >=1) { [_textView-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ UITouch *touch=[[event allTouches] anyObject];resignFirstResponder]; }}
IOS-导航栏风格
导航控制器可以用几种不同的风格来显示自身。默认风格就是标准的灰色外观。目前支持三种不同的风格。
风 格
描 述
UIBarStyleDefault
默认风格;灰色背景,白色文字
UIBarStyleBlack
纯黑色背景,白色文字
UIBarStyleBlackOpaque
纯黑色背景,白色文字
UIBarStyleBlackTranslucent
透明黑色背景,白色文字
风格是通过barStyle属性来设置的。这个属性属于导航控制器,而不是视图控制器,因此在各个视图之间来回切换时,此属性可以保持一致:
self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
IOS中原文档如下:
UIBarStyleDefines the stylistic appearance of different types of views.typedef enum { UIBarStyleDefault = 0,BlackOpaque = 1, // DeprecatedUIBarStyleBlack = 1, UIBarStyle UIBarStyleBlackTranslucent = 2, // Deprecated} UIBarStyle;Constantsiew. For example,UIBarStyleDefaultUse the default style normally associated with the given v search bars and tool bars typically use a blue gradient background.eBlackUse an opaque black stylAvailable in iOS 2.0 and later.Declared in UIInterface.h.UIBarStyle.Available in iOS 3.0 and later.Declared in UIInterface.h.UIBarStyleBlackOpaqueInterface.h.UIBarStyleBlackTranslucenDeprecated. Use UIBarStyleBlack instead.Available in iOS 2.0 and later.Declared in UItDeprecated. Use UIBarStyleBlack and set the translucent property to YES instead.Available in iOS 2.0 and later.Declared in UIInterface.h.
本文是使用纯代码实现一个导航栏的效果。单击按钮并且产生事件。基本思路是:
1.创建一个导航栏(UINavigationBar对象)
2.创建一个导航栏集合(UINavigationItem对象)
3.创建一个左边按钮、一个右边按钮(UIBarButtonItem对象),并实现对应的事件方法
4.将导航栏集合添加到导航栏中,设置动画关闭
5.把左右两个按钮添加到导航栏集合中去
6.在视图中显示当前创建的导航栏
具体的实现代码如下:
delegate代码
.h文件:
#import <UIKit/UIKit.h>
#import "ZYRootViewController.h"
@interface ZYAppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property(nonatomic,strong) ZYRootViewController *zYRootViewController;
@property(nonatomic,strong) UINavigationController *navigationController;
@end
.m文件:
@synthesize navigationController;
@synthesize zYRootViewController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
self.zYRootViewController = [[ZYRootViewController alloc] initWithNibName:nil bundle:nil];
//实例化导航栏
self.navigationController = [[UINavigationController alloc] initWithRootViewController:self.zYRootViewController];
//向当前视图添加导航栏
self.window.rootViewController = self.navigationController;
// [self.window addSubview:self.navigationController.view];
return YES;
}
ZYRootViewController代码
.m文件:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.title = @"First";//设置标题
[self performSelector:@selector(pushSecondController) withObject:nil afterDelay:3.0f];//3秒后调用自身pushSecondController方法
}
-(void)pushSecondController{
ZYSecondViewController *zYSecondViewController = [[ZYSecondViewController alloc] initWithNibName:nil bundle:nil];
[self.navigationController pushViewController:zYSecondViewController animated:YES];//向导航栏堆栈推入zYSecondViewController视图
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.title = @"First";//设置标题
[self performSelector:@selector(pushSecondController) withObject:nil afterDelay:3.0f];//3秒后调用自身pushSecondController方法
}
-(void)pushSecondController{
ZYSecondViewController *zYSecondViewController = [[ZYSecondViewController alloc] initWithNibName:nil bundle:nil];
[self.navigationController pushViewController:zYSecondViewController animated:YES];//向导航栏堆栈推入zYSecondViewController视图
}
ZYSecondViewController代码
.m文件:
- (void)viewDidLoad
{
[super viewDidLoad];
self.title = @"Second";
// Do any additional setup after loading the view.
[self performSelector:@selector(goBack) withObject:nil afterDelay:3.0f];//3秒后调用自身goBack方法
}
-(void)goBack{
[self.navigationController popViewControllerAnimated:YES];//将自身视图弹出导航栏堆栈
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.title = @"Second";
// Do any additional setup after loading the view.
[self performSelector:@selector(goBack) withObject:nil afterDelay:3.0f];//3秒后调用自身goBack方法
}
-(void)goBack{
[self.navigationController popViewControllerAnimated:YES];//将自身视图弹出导航栏堆栈
}运行结果:
最初的效果
3秒以后跳到第二个视图:
又3秒以后弹出本视图,显示初始视图:
- OC学习之navigationController导航栏
- iOS开发之导航栏(navigationController)透明化
- NavigationController 设置导航栏主题
- navigationcontroller导航栏透明度变化
- ios 关于navigationController导航栏隐藏问题
- tabbarcontroller+navigationcontroller 导航栏错乱的问题
- NavigationController关于页面导航
- NavigationController导航控制器
- NavigationController导航栏中添加多个UIBarButtonItem
- iphone实现NavigationController 导航栏中的系统按钮
- NavigationController导航栏中添加多个UIBarButtonItem
- NavigationController导航栏中添加多个UIBarButtonItem
- NavigationController导航栏中添加多个UIBarButtonItem
- (8)---01 iphone 开发 大话分析导航栏NavigationController
- NavigationController导航栏中添加多个UIBarButtonItem
- NavigationController导航栏中添加多个UIBarButtonItem
- NavigationController导航栏中添加多个UIBarButtonItem
- NavigationController导航栏中添加多个UIBarButtonItem
- Red and Black(hdu1312)
- OC学习之正式协议和非正式协议
- CAS单点登录
- PE启动时会占用多少内存
- POJ 2653 Pick-up sticks 线段相交问题
- OC学习之navigationController导航栏
- Train for kirara 总结
- OC学习之形参,实参,brake,switch,指针,面对对象
- hdu 4336 Card Collector
- diff & patch
- YbSoftwareFactory 代码生成插件【十四】:通过 DynamicLinq 简单实现 N
- 黑马程序员——飞行棋(一)
- hdu1209 Clock
- 新人学习opencv笔记(一)