`
dingran
  • 浏览: 375080 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ios 导航栏放置多个按钮及引申的ivar变量的问题

    博客分类:
  • ios
 
阅读更多

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 demo,自定义一个类,实例变量和成员变量的实现

    本示例“ios demo,自定义一个类,实例变量instance和成员变量的实现”旨在教授如何在Objective-C中创建自定义类并管理其实例变量和成员变量。 首先,我们需要理解什么是实例变量(instance variable,简称ivar)和...

    iOS基础知识之@property 和 Ivar 的区别

    首先,`ivar`(实例变量)是类中的一个变量,用于存储数据。在Objective-C中,`ivar`通常是私有的,即只能在类的内部被访问。例如,在`Person`类中声明了一个`ivar``name0`: ```objc @interface Person : NSObject...

    Runtime Ivar的使用.zip

    通过这个“Runtime Ivar的使用.zip”文件的学习,你应该能够掌握如何在Objective-C的`Runtime`环境下灵活地操作类的实例变量,这将极大地增强你的编程能力,并让你能应对更多复杂场景下的编程挑战。

    iVAR_HTF - MetaTrader 5脚本.zip

    ivar_htf.mq5允许用户在多个时间帧下运行iVAR模型,这样可以捕捉到更全面的市场信息,提高决策的准确性。 在实际应用中,iVAR_HTF脚本可以结合MT5的图表和报警功能,根据计算出的iVAR值为交易者提供实时的交易信号...

    runtime之 property和 ivar

    在iOS和Mac开发中,Objective-C runtime扮演着至关重要的角色,它允许我们在运行时检查和修改对象的行为。本文将深入探讨“runtime之property和ivar”,以及如何利用runtime的方法来操作这些概念。 首先,我们来...

    iOS常见笔试题.pdf

    iOS开发是苹果公司为其操作系统iOS设计的应用程序开发平台,它广泛应用于iPhone、iPad及iPod Touch等设备的软件开发。在iOS开发的面试过程中,通常会涉及到一些基础知识点的考核。以下将详细阐述iOS开发笔试题集中...

    2018iOS面试题汇总

    ### 2018 iOS面试题汇总解析 #### 一、设计模式的理解及常见类型 设计模式是指在软件开发过程中,对于特定问题的一种普遍适用的解决方案。它代表着开发者们长期以来积累的经验教训,可以帮助我们更好地组织代码,...

    Ivar Jacobson:精益思想的复兴

    通过这次演讲,我们期待能够获得更多关于如何在软件研发中实施精益思想,尤其是如何理解和实现Ivar Jacobson所倡导的内核概念的深刻洞见。这也意味着我们需要在软件设计和开发过程中,不断追求简单、高效、适应性强...

    iOS 给已有类添加属性

    在iOS开发中,Objective-C是一种主要的编程语言,它提供了强大的动态性,使得开发者可以在运行时修改类的行为。本文将深入探讨如何利用...然而,了解并合理运用Runtime机制,能让你在面对特定问题时有更多的解决方案。

    iOS KVC实现原理

    1. **尝试直接访问实例变量**:首先,KVC会尝试查找与键(key)对应的实例变量(ivar)。如果存在,则直接返回或设置该实例变量的值。 2. **寻找getter/setter方法**:如果实例变量不存在,KVC会查找与键名匹配的...

    03-03-04成员变量的实现.pdf

    它返回一个`Ivar`数组,数组中的每个元素都是一个`objc_ivar`结构体的指针,包含了变量名、类型和偏移量等信息。 - `ivar_getName`:通过`Ivar`指针获取成员变量的名称。 - `ivar_getTypeEncoding`:获取成员变量...

    iOS runtime底层框架原码

    深入理解Objective-C runtime的源码,不仅可以帮助开发者优化代码,解决性能问题,还能提升对整个iOS系统运作的理解,增强编程能力。通过objc4-723,我们可以一步步揭开OC runtime的神秘面纱,学习到iOS开发中许多不...

    ios-把block当成属性放在全局字典中的用例.zip

    在这个“ios-把block当成属性放在全局字典中的用例.zip”示例中,开发者创建了一个单例字典,将Block作为其中的一个属性,以便于在应用程序的不同部分之间共享和调用,从而简化了跨界面的数据传递和回调机制。...

    终极期望之:Ivar Jacobson 的软件工程传世经典

    《终极期望之:Ivar Jacobson 的软件工程传世经典》这一主题,聚焦于软件工程领域的一位重量级人物——Ivar Jacobson及其对软件开发的深远贡献。Ivar Jacobson,被誉为“Use Case(用例)之父”,他的工作与理论在...

    iOS 学习OC语言部分,代码和笔记,超详细

    总结,这个压缩包包含的内容可以帮助初学者系统地学习Objective-C语言,了解其在iOS开发中的应用。通过代码实践和笔记学习,不仅可以提升编程技能,还能加深对iOS应用开发的理解。记得理论结合实践,多写代码,多...

    ios-利用class_copylvarList获取UIKit 中一些控件的隐藏属性.zip

    该函数会返回一个`Ivar`类型的数组,每个`Ivar`结构体包含了实例变量的名字、类型和内存偏移量等信息。 在iOS开发中,虽然不推荐直接使用私有属性,因为这可能导致应用程序在Apple的审核过程中被拒绝,或者在未来的...

    ios kvo使用

    - 不推荐直接修改`ivar`(实例变量),因为KVO依赖于setter方法来触发通知。应使用`willSet`和`didSet`属性观察器或`@dynamic`属性。 - KVO自动处理多线程情况,但为了性能和正确性,建议在主线程中更新界面。 - ...

    iOS Runtime知识

    根据提供的信息,我们可以深入探讨与iOS Runtime相关的知识点。尽管原文中的大部分内容似乎为乱码,但从标题、描述以及部分可识别的关键字中,我们仍能提取出关于iOS Runtime的重要概念和技术细节。 ### iOS ...

Global site tag (gtag.js) - Google Analytics