ios uicontroller 和 uicontroller 的区别

UINaviGationController通常被我们称为导航栏,他是视图与视图之间联系沟通的桥梁,一些著名的app都用到了他。下面我们来看一下如何建立一个navigation。
首先,我们通常新建工程是直接将视图控制器添加到window上,而现在有navigation以后,就多了一层:
&&&&&Appdelegete.h:&
-&(BOOL)application:(UIApplication&*)application&didFinishLaunchingWithOptions:(NSDictionary&*)launchOptions&&
&&&&self.window&=&[[UIWindow&alloc]&initWithFrame:[[UIScreen&mainScreen]&bounds]];&&
&&&&self.window.backgroundColor&=&[UIColor&whiteColor];&&
&&&&RootViewController&*root&=&[[RootViewController&alloc]init];&&
&&&&UINavigationController&*nav&=&[[UINavigationController&alloc]initWithRootViewController:root];&&
&&&&[_window&setRootViewController:nav];&&
&&&&[nav&release];&&
&&&&[root&release];&&
&&&&[self.window&makeKeyAndVisible];&&
&&&&return&YES;&&
这样我们的navigation就加载上去了。下面我们来设置navigation的属性:
-&(void)viewDidLoad&&
&&&&[super&viewDidLoad];&&
&&&&[self.navigationController.navigationBar&setTranslucent:NO];&&
&&&&self.title&=&@"navigationcontroller";&&
&&&&[self.navigationController.navigationBar&setBarTintColor:[UIColor&purpleColor]];&&
&&&&self.navigationItem.leftBarButtonItem&=&[[UIBarButtonItem&alloc]initWithBarButtonSystemItem:UIBarButtonItemStyleDone&target:self&action:Nil];&&
&&&&self.navigationItem.rightBarButtonItem&=&[[UIBarButtonItem&alloc]initWithBarButtonSystemItem:UIBarButtonItemStylePlain&target:self&action:Nil];&&
&&&&[self.navigationController.navigationBar&setTintColor:[UIColor&whiteColor]];&&
效果图如下:
这里还有一个属性常用,就是:&
NSArray&*arr&=&[NSArray&arrayWithObjects:@"1",@"2",&nil&nil];&&
&&&&UISegmentedControl&*segment&=&[[UISegmentedControl&alloc]initWithItems:arr];&&
&&&&self.navigationItem.titleView&=&&&
效果如下:
对,我们看到中间的字变成了两个可选的按钮,这就是navigation的另一个属性:navigationitem.titleview。
下面我们再建立一个视图,看一下两个视图之前是怎样通信的。
在第二个视图中,我添加了一个button来显示,并加了一个成员变量来接收从第一个视图中穿过来的值:
@interface&SecondViewController&:&UIViewController&&
@property&(copy,nonatomic)&NSString&*&&
-&(void)viewDidLoad&&
&&&&[super&viewDidLoad];&&
&&&&self.title&=&@"second";&&
&&&&UIButton&*aBUTTON&=&[[UIButton&alloc]initWithFrame:CGRectMake(30,&30,&50,&30)];&&
&&&&[aBUTTON&setTitle:_str&forState:UIControlStateNormal];&&
&&&&[aBUTTON&addTarget:self&action:@selector(clicked)&forControlEvents:UIControlEventTouchUpInside];&&
&&&&[self.view&addSubview:aBUTTON];&&
然后我将第一个视图的右边按钮添加一个事件,点击按钮,就会推出第二个视图,并显示我们传过来的值:
-&(void)clicked{&&
&&&&SecondViewController&*second&=&[[SecondViewController&alloc]init];&&
&&&&[self.navigationController&pushViewController:second&animated:YES];&&
&&&&second.str&=&@"hello!!";&&
&&&&[second&release];&&
下面,我们来运行一下:
点进按钮以后,我们的第二个视图推出,button显示了传过来的值。
然后我们点击回button,还有navigation另外一个方法:&
-&(void)clicked{&&
&&&&[self.navigationController&popViewControllerAnimated:YES];&&
这样就可以回到第一个视图。
uinavigationcontroller的一些简单的属性就先说到这里,欢迎留言补充,谢谢。
阅读(...) 评论()&沙盒& : IOS给每一个App分配一定的独立的存储空间
//获取沙盒路径
NSString *path = NSHomeDirectory();
如上图所示的文件夹,即为沙盒.沙盒空间彼此独立,数据私有
异步:可以同时进行多个事件的进程(非阻塞).
异步事件模型:程序无法知道用户何时出发应用的监听机制,用户一旦触发,
应用立即做出响应.
UIButton : (UIControl : UIView)
+ (id)buttonWithType:(UIButtonType)buttonT
- (void)setFrame:(CGRect)
- (void)setTitle:(NSString )title forState:UIControlState) & & & & & &
&& & & & // default is nil. title is assumed to be single line
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlE
//target 添加事件的对象
//action 添加事件的响应方法
//controlEvents& 事件的类型
//SEL类型:IOS系统会给每一个方法分配一个唯一的id,方法名一样,id也一样;
//@selector(click) 方法选择器,将方法名click转化为id,类似C中的函数指针
ControlEvents & && & ControlState
ControlEvents未触发,ControlState为normal状态,当ControlEvents 触发时,ControlState才会发生改变.
btn.tag = (NSInteger)//给btn按钮设置一个标签
同步:一个事件的进程未完成,不能进行下一个事件的进程(阻塞).
UIImage : UIObject
UIImageView : UIView
UIImage 图片数据的抽象类
UIImageView 展示UIImage的类,用于存放图片信息的容器.
Method 1:通过文件名加载图片
//从沙盒中读取图片
UIImage *image = [UIImage imageNamed:@"1.png"];
//实例化一个存放图片的UIImageView容器
& & //UIImageView *imgView = [[UIImageView alloc]initWithFrame:CGRectMake(30, 250, 100, 100)];
//---------------------
 &//图片容器自适应 & 防止图片失真
& & UIImageView *imgView = [[UIImageView alloc]initWithFrame:CGRectZero];
& & CGSize size = image.
 &[imgView setFrame:CGRectMake(200, 250, size.width, size.height)];
& & //加载图片数据到图片容器
& & [imgView setImage:image];
& & [self.window addSubview:imgView];
& & [imgView release];
& & imgView = nil;
Method 2:使用二进制数据流加载图片
 &//获取沙盒中文件的路径
& & NSString *path = [[NSBundlemainBundle] pathForResource:@"2"ofType:@"png"];
& & //获取图片文件的二进制数据流对象
& & NSData *imgData = [NSData dataWithContentsOfFile:path];
& & //将图片的二进制数据转化为UIImage
& & UIImage *image1 = [UIImage imageWithData:imgData];
& & CGSize size1 = image1.size;
& & UIImageView *imgView1 = [[UIImageView alloc]initWithFrame:CGRectMake(100, 250, size1.width, size1.height)];
& & [imgView1 setImage:image1];
& & [self.window addSubview:imgView1];
& & [imgView1 release];
& & imgView1 = nil;
&从代码优化的角度,使用 + (UIImage *)imageWithName:(NSString *)filePath 会占用系统的缓存空间,所以在加载图片的时候,推荐使用
+ (UIImage *)imageWithData : (NSData *)data 来加载图片.
阅读(...) 评论()o &nbsp,&nbsp
作为初学者,基础的几个UI控件必须要熟练,现在的我还处于打开Xcode在控件表里面瞎找,看着谁好像是我想要的就往StoryBoard里面拖的阶段……正式写了点东西以后,越来越感觉到,该认真把控件过一遍了。上周写了这么个UIView的Demo,本意是看看各种效果,结果各种状况,花了不少时间。
关于伯乐头条
专注于IT互联网,分享业界动态。
新浪微博:
推荐微信号
(加好友请注明来意)
- 好的话题、有启发的回复、值得信赖的圈子
- 分享和发现有价值的内容与观点
- 为IT单身男女服务的征婚传播平台
- 优秀的工具资源导航
- 翻译传播优秀的外文文章
- 国内外的精选博客文章
- UI,网页,交互和用户体验
- 专注iOS技术分享
- 专注Android技术分享
- JavaScript, HTML5, CSS
- 专注Java技术分享
- 专注Python技术分享
& 2017 伯乐在线-&(void)&viewDidAppear:(BOOL)animated{&&&&[super&viewDidAppear:animated];&&&&[self.navigationController&setNavigationBarHidden:YES&animated:YES];}-&(void)&viewDidDisappear:(BOOL)animated{&&&&[super&viewDidDisappear:animated];&&&&[self.navigationController&setNavigationBarHidden:NO&animated:YES];}2.初始化,始终为[[UINavigationController&alloc]&initWithRootViewController:[[UIViewController&alloc] init]]3.定制自己的UINavigationController,是的push和present的方式变成自己想要的方式,以便统一处理视图特效头文件:CustomNavigationController.h@interface&CustomNavigationController&:&UINavigationController-&(UIBarButtonItem&*)navBarItemWithTarget:(id)target&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&action:(SEL)action&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&imageName:(NSString*)imgN@end实现文件:&CustomNavigationController.m////&&CustomNavigationController.m//&&PudongTravel////&&Created&by&duwei&on&14-4-23.//&&Copyright&(c)&2014年&mark.&All&rights&reserved.//#import&"CustomNavigationController.h"#import&"AppDelegate.h"@interface&CustomNavigationController&()@end@implementation&CustomNavigationController-&(id)initWithNibName:(NSString&*)nibNameOrNil&bundle:(NSBundle&*)nibBundleOrNil{&&&&self&=&[super&initWithNibName:nibNameOrNil&bundle:nibBundleOrNil];&&&&if&(self)&{&&&&&&&&//&Custom&initialization&&&&}&&&&return&}-&(void)viewDidLoad{&&&&[super&viewDidLoad];}-&(void)didReceiveMemoryWarning{&&&&[super&didReceiveMemoryWarning];&&&&//&Dispose&of&any&resources&that&can&be&recreated.}-&(void)navigationItemInit:(UIViewController*)viewController{&&&&UILabel*&titleLabel&=&[[UILabel&alloc]&initWithFrame:CGRectMake(0,40,175,44)];&&&&titleLabel.backgroundColor&=&[UIColor&clearColor];&&//设置Label背景透明&&&&titleLabel.font&&&&&&&&&&&&=&[UIFont&boldSystemFontOfSize:16];&&//设置文本字体与大小&&&&titleLabel.textColor&&&&&&&=&[UIColor&whiteColor];&&//设置文本颜色&&&&titleLabel.textAlignment&&&=&NSTextAlignmentL&&&&viewController.navigationItem.titleView&=&titleL}-&(UIBarButtonItem&*)navBarItemWithTarget:(id)target&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&action:(SEL)action&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&imageName:(NSString*)imgName{&&&&UIButton&*leftbutton&=&[UIButton&buttonWithType:UIButtonTypeCustom];&&&&leftbutton.frame&=&CGRectMake(10,&4,&42,&40);&&&&[leftbutton&setBackgroundImage:[UIImage&imageNamed:imgName]&forState:UIControlStateNormal];&&&&[leftbutton&addTarget:target&action:action&forControlEvents:UIControlEventTouchUpInside];&&&&&&&&UIBarButtonItem&*letfBarItem&=&[[UIBarButtonItem&alloc]&initWithCustomView:leftbutton];&&&&return&letfBarI}-&(void)backBtnPressed:(id)sender{&&&&[super&popViewControllerAnimated:YES];}-&(void)dismissLeftBtnPress:(id)sender{&&&&[super&dismissViewControllerAnimated:YES&completion:nil];}-&(void)rightBtnPressed:(id)sender{&&&&}#pragma&mark&-&presentViewController&&&&pushViewController&method-&(void)presentViewController:(UIViewController&*)viewControllerToPresent&animated:(BOOL)flag&&&&&&&&&&&&&&&&&&&completion:(void&(^)(void))completion{&&&&[super&presentViewController:viewControllerToPresent&animated:flag&completion:completion];&&&&//&添加返回&&&&UINavigationController&*nav&=&(UINavigationController*)viewControllerToP&&&&if&([self.viewControllers&count]&&&1){&&&&&&&&if&(nav.topViewController.navigationItem.leftBarButtonItem&==&nil){&&&&&&&&&&&&nav.topViewController.navigationItem.leftBarButtonItem&=&&&&&&&&&&&&[self&navBarItemWithTarget:self&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&action:@selector(dismissLeftBtnPress:)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&imageName:@"icon_return.png"];&&&&&&&&}&&&&&&&&if&(nav.topViewController.navigationItem.rightBarButtonItem&==&nil)&&&&&&&&{&&&&&&&&&&&&nav.topViewController.navigationItem.rightBarButtonItem&=&[self&navBarItemWithTarget:self&action:@selector(rightBtnPressed:)&imageName:@"icon_personal.png"];&&&&&&&&}&&&&&&&&[self&navigationItemInit:nav.topViewController];&&&&&&&&[self&navigationItemInit:nav.topViewController];&&&&}}-&(void)pushViewController:(UIViewController&*)viewController&animated:(BOOL)animated{&&&&[super&pushViewController:viewController&animated:animated];&&&&&&&&//&添加返回&&&&if&([self.viewControllers&count]&&&1){&&&&&&&&if&(viewController.navigationItem.leftBarButtonItem&==&nil){&&&&&&&&&&&&viewController.navigationItem.leftBarButtonItem&=&&&&&&&&&&&&[self&navBarItemWithTarget:self&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&action:@selector(backBtnPressed:)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&imageName:@"icon_return.png"];&&&&&&&&}&&&&&&&&if&(viewController.navigationItem.rightBarButtonItem&==&nil)&&&&&&&&{&&&&&&&&&&&&viewController.navigationItem.rightBarButtonItem&=&&&&&&&&&&&&[self&navBarItemWithTarget:self&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&action:@selector(rightBtnPressed:)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&imageName:@"icon_personal.png"];&&&&&&&&}&&&&&&&&[self&navigationItemInit:viewController];&&&&}}@end转载请注明出处:
阅读(19156)}

我要回帖

更多关于 uisplitcontroller 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信