ios导航栏默认只有左右两个位置放置按钮,用Master-Detil模板生成的MasterViewController就是个例子。但是到SDK5.0以后就可以给左右两个位置放置NSArray的多个按钮了。这也是最简洁的方式,不用使用UISegmentedControl这东西的按钮都是连在一起的明显不是我想要的,可参考:http://2015.iteye.com/blog/1583386。也不用使用UIToolbar,这东西也麻烦,还得注意背景色。
如果从xib拖动进了按钮,手动连接好了函数,那么如下是最简单的用法:
[self.navigationItem setLeftBarButtonItems:[NSArray arrayWithObjects: firstButton,secondButton,nil]];
如果想纯代码搞定,那么:
UIBarButtonItem *anotherButton = [[UIBarButtonItem alloc] initWithTitle:@"first" style:UITabBarSystemItemContacts target:self action:@selector(one:)];
UIBarButtonItem *anotherButton2 = [[UIBarButtonItem alloc] initWithTitle:@"second" style:UITabBarSystemItemContacts target:self action:@selector(two:)];
[self.navigationItem setLeftBarButtonItems:[NSArray arrayWithObjects: anotherButton,anotherButton2,nil]];
[anotherButton release];
[anotherButton2 release];
这和android的原理是一样的,不想用xml布局,那么就用代码搞定,只不过不符合MVC的设计。
不过还遇到一个问题:
如果是这样
@synthesize firstButton = _firstButton;
接下来使用firstButton发现是空指针,而_firstButton却是真正的指针。难道=还可以掏出对象的内容?
后来看了这篇文章才明白了:http://blog.csdn.net/pinklpig/article/details/7379779
这种用法还有个好处,如果不明确指明私有变量的话,系统就会认为你的私有变量名和属性名是一样的。那么使用起来就是
self.firstButton, 引用计数加1,所以如果不想引用计数增加的话。你懂得。。。
分享到:
相关推荐
主要介绍了iOS基础知识之@property 和 Ivar 的区别介绍,非常不错,具有参考借鉴价值,需要的朋友可以参考下
Ivar的使用.zip
Ivar的演讲,将会结合若干实际应用的案例分析,向大家介绍内核(kernel)概念的核心思想。
指标 iVAR 在输入参数中有时间帧选项。
2008上海英雄会 Ivar 演讲PPT下载(Smart)
Ivar: 实例变量类型,是一个指向objc_ivar结构体的指针 typedef struct objc_ivar *Ivar; 2、相关函数 // 获取所有成员变量 class_copyIvarList // 获取成员变量名 ivar_getName // 获取成员变量类型编码 ivar_...
runtime之 property 和 ivar,property list, ivar list等以及其他runtime方法。
NULL 博文链接:https://flyqantas.iteye.com/blog/1555062
ivar产品经理培训教材,pdf格式。主要讲解需求和用例。
阿里,字节一套高效的iOS面试题解答面试题出自掘金的文章欢迎转载,转载请注明出处:调试好可运行的 ,官网找最后修订:2020/05/11 [目录]一,运行时相关问题调试好可运行的 ,官网找 ;结构模型 1.介绍下运行时的...
逐浪CMS应邀参加CSDN中国软件英雄会上海站活动,现场与敏捷开发创始人Ivar Jacobson、Google研究院副院长张智威等人对话,赢得了诸多专家与业内人士认可。同时,Zoomla!逐浪CMS将导入敏捷开发,以中国第一敏捷应用...
由UML三位创始人James Rumbaugh、Ivar Jacoboson、Grady Booch合著的《UML参考手册》对于使用UML建模的开发人员来说,就像学英语的《牛津英汉词典》,虽然不会随身携带,架上却是必备的。2000年,《UML参考手册》第...
ncov-utils 使用ivar管道处理ncov19样本的实用程序脚本和模块
面包屑控制IOS 9的BreadCrumb控件(快速) 这是一个面包屑,Swift编写了用于IOS的控件。 开发人员可以完全访问“ BreadCrumb”的属性:颜色,动画等。此控件随示例应用程序一起提供,可让您实时更改控件的属性。在...
软件工程的本质:运用SEMAT内核.[美]Ivar Jacobson(详细书签)
const ivar_list_t * ivars;baseMethodList,baseProtocols,ivars,baseProperties三个都是以