ios-从xib到storyboard的封装性问题

问题描述

从xib到storyboard的封装性问题

用xib可以调用不同的初始化块。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // Fetch Note...
    // Initialize Edit Note View Controller with the fetched Note
    EditNoteViewController *vc = [[EditNoteViewController alloc] initWithNote:note];

    // Push View Controller onto Navigation Stack
    [self.navigationController pushViewController:vc animated:YES];
}

这样我就可以保持变量(在EditNoteViewController中)私有化,而且可以设置变量的默认值。比如:

- (id)initWithNote:(Note *)note {
    // ....
    if (self) {
        self.note = note;
        self.isEditing = YES;
    }
    return self;
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    //...
    if (self) {
        self.isEditing = NO;
    }
    return self;
}

现在要用storyboard,有两个问题:

1.在prepareForSegue设置变量,怎么不暴露变量或其他实现?
2.能设置默认值吗?

谢谢您的解答。

时间: 2024-08-04 00:55:45

ios-从xib到storyboard的封装性问题的相关文章

代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧

最近接触了几个刚入门的iOS学习者,他们之中存在一个普遍和困惑和疑问,就是应该如何制作UI界面.iOS应用是非常重视用户体验的,可以说绝大多数的应用成功与否与交互设计以及UI是否漂亮易用有着非常大的关系.而随着iOS开发发展至今,可以说在UI制作上大家逐渐分化为了三种主要流派:使用代码手写UI及布局:使用单个xib文件组织viewController或者view:使用StoryBoard来通过单个或很少的几个(关于这点稍后会进行展开)文件构建全部UI.应该使用哪种方式来制作UI已经是iOS开发中

php学习笔记 php中面向对象三大特性之一[封装性]的应用

复制代码 代码如下: <?php /* * 封装性:面向对象三大特性之一 * * 1.就是把对象的成员(属性,方法)结合成一个独立的相同单位,并尽可能隐藏对象的内部细节 * 访问权限修饰符 public protected private * private:私有的,用这个关键字修饰的成员,只能在对象内部访问(只有用$this访问) * * 属性可以封装: * 只要一个变量,需要在多个方法使用,就将这个变量声明为成员属性,可以直接在这个对象中的所有方法中使用 * * 成员属性,相当于这个对象中的

VB.Net中文教程(1) 类别与封装性

封装|教程|中文 1. 类别的「程序成员」(Procedure Member) 类别 (Class)之任务是把资料(Data)和程序(Procedure)组织并封装起来.类别告诉计算机﹕「其对象应含有那些资料.应含有那些程序裨处理外界传来之讯息」.类别须详细说明它的资料及程序﹐我们称此资料是类别之「资料成员」(Data Member) ﹔而称此程序是类别之「程序成员」(Procedure Member).有关类别内容之叙述﹐就是所谓的类别定义(Class Definition).类别定义之格式为

VB.Net中文教程(3) 继承与封装性

封装|继承|教程|中文 1. 继承与封装性(Encapsulation)1.1 公用与私有数据 前面已介绍「封藏性」(Encapsulation) 之观念.即是﹕类别内所定义之资料成员﹐只限于程序成员才能存取之.现在所面临之问题为﹕子类别能否直接存取父类别之资料呢﹖就如同﹕儿女从父母亲继承了财产﹐但能否取用或卖掉继承而来的财产呢﹖如果可以﹐显然违背了「封藏性」之理想.如果不行﹐显然带给程序员莫大之限制.理论上﹐百分之百的封藏性最为完美﹔但应用上﹐若给予子类别若干优待﹐能提高程序之弹性及效率.为了

php面向对象编程的封装性

封装的概念 封装就是把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作. 例:在人这个类中,人的年龄和工资是隐私的 <?php class Person{ public $name; private $age; private $salary; function __construct($name,$age,$salary){ $this->name=$name; $this->age=$name; $this-&

使用静态内部类提高封装性

转载来自:http://blog.csdn.net/chenzhiqin20/article/details/10458747 Java中的嵌套类(Nested Class)分为两种:静态内部类(也叫静态嵌套类,Static Nested Class)和内部类(Inner Class).内部类我们介绍过很多了,现在来看看静态内部类.什么是静态内部类呢?是内部类,并且是静态(static修饰)的即为静态内部类.只有在是静态内部类的情况下才能把static修复符放在类前,其他任何时候static都是

弱引用-ios 与xib视图加载相关的内存管理问题

问题描述 ios 与xib视图加载相关的内存管理问题 在通过xib加载视图的时候,我们遵循一个准侧 那就是顶层视图 我们的成员变量要是强引用 若是非顶层视图,而是顶层视图的子视图,为了防止顶层视图被释放以后,字视图还存在而造成的内存泄漏,我们把这字视图的成员变量定义为弱饮用 现在问题是,在ARC模式下,假如我有个视图控制起ViewController,然后有个UIButton子视图 @interface ViewController:UIViewController {weak/strong I

Javascript基于对象三大特性(封装性、继承性、多态性)_javascript技巧

Javascript基于对象的三大特征和C++,Java面向对象的三大特征一样,都是封装(encapsulation).继承(inheritance )和多态(polymorphism ).只不过实现的方式不同,其基本概念是差不多的.其实除三大特征之外,还有一个常见的特征叫做抽象(abstract),这也就是我们在一些书上有时候会看到面向对象四大特征的原因了.一.封装性    封装就是把抽象出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能

php学习笔记 php中面向对象三大特性之一[封装性]的应用_php基础

复制代码 代码如下: <?php /* * 封装性:面向对象三大特性之一 * * 1.就是把对象的成员(属性,方法)结合成一个独立的相同单位,并尽可能隐藏对象的内部细节 * 访问权限修饰符 public protected private * private:私有的,用这个关键字修饰的成员,只能在对象内部访问(只有用$this访问) * * 属性可以封装: * 只要一个变量,需要在多个方法使用,就将这个变量声明为成员属性,可以直接在这个对象中的所有方法中使用 * * 成员属性,相当于这个对象中的