2 vikeytoy vikeyToy 于 2013.06.20 14:53 提问

从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.能设置默认值吗?

谢谢您的解答。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
IOS 使用XIB制作Storyboard使用的自定义控件
开发环境:IOS8.0+ Swift 2.3 创建一个UIView 遗憾的是Also create XIB file是灰色的。没办法,只能分开创建了 新建文件,选择User Interface中的View然后命名为CustomTest。 在CustomTest.Xib中的File’s Owner的属性面板的Customer class选择CustomTest, 记住是File’s Ow
iOS学习之加载storyboard和xib文件
1.加载storyboard(故事板) //a) 获取故事板 UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"故事板的名字" bundle:nil]; //b) 将故事板中的视图覆盖导航视图(方法一) UINavigationController *navig = [storyboard instantia
iOS xib跳转到storyboard的ViewController页面
UIStoryboard *story = [UIStoryboard storyboardWithName:@"Main"bundle:nil];       BindingPhoneViewController *storVC = [story instantiateViewControllerWithIdentifier:@"bindingVC"]; [self.navigationC
iOS从xib界面跳转到storyboard 中的界面和从storyboard中的界面跳转到另一个storyboard中的界面
版权声明:本文为博主原创文章,未经博主允许不得转载。 //先获取storyboard,然后找到storyboard中的控制器 //中先获取storyboard,然后找到storyboard中的控制器 UIStoryboard *story = [UIStoryboard storyboardWithName:@"Main" bundle:nil
ios-使用Xib加载或Storyboard加载控制器(视图)
在ios中,一般建议使用代码布局,因为使用代码布局,后期维护容易,拓展容易,
storyboard及xib的拆分
storyboard和xib的熟练使用可以大大提高开发效率和清晰项目逻辑,但是当开发程序的页面太多,单个页面太复杂时,一定 要对storyboard和xib进行拆分。 1.storyboard拆分 选中想要分开的画面,可以选中一个viewcontroller,按住shif选中多个,点击 Xcode 的菜单栏,选择"Editor->Refactor to Storyboard"。
获取XIB和Storyboard生成的控件
XIB 有些情况下需要动态增加一些子控件。 如果用代码直接构建子控件,就是比较麻烦。尽量少写代码。 所以想到的是用xib文件来实现UIView。 问题是UIView不能直接从xib文件构造。 可以通过写UIViewController来加载xib。但是缺点是会得到很多小的UIVIewController实例,而实际上我们又不怎么需要。   xib/nib文件可以通过NSBundl
Objective-C弹出模态学习之纯代码跳转到xib界面以及storyboard界面
现在在iOS开发中,有三种开发UI的方式,纯代码,xib,storyboard。1,跳转到xib 假设有一个按钮,这个按钮就是实现跳转的,那么在这个按钮的点击事件中,代码可以这样写。 SCViewController *sc1= [[SCViewController alloc]initWithNibName:@”SCViewController” bundle:[NSBundle mainBu
swift之xib的使用、从xib获取view和控制器、storyboard获取控制器
===================xib创建View =========== import UIKit class LYBMyHeaderView: UIView {     override func awakeFromNib() {         super.awakeFromNib()         backgrou
iOS 代码取得到 Storyboard和XIB控件,控制器
为了追求开发效率, 更直观的界面适配,大多人都采用了Storyboard和XIB控件来开发, 结合代码的话, 如何在代码中取得Storyboard中的VC或者控件 有三种方法: // 第一种方法 通过storyBord的名字 取得SB 再通过通过SB调用instantiateInitialViewController UIStoryboard *stroyB = [UI