怎样在xcode中使用storyboard
StoryBoard是iOS 5的新特征,目的是取代历史悠久的NIB/XIB,对于已经习惯了xib文件的孩子们来说,StoryBoard还不是那么熟悉。经过两天的研究,有了一些心得,在此分享。
一、怎样使用storyboard简单实现Push页面,过程例如以下:
1、创建一个带有storyboard的singleview
application应用程序如图。




创建好的应用程序已经自己主动创建好了一个和MainStoryboard连接好的ViewController。
2、在MainStoryboard中,选中ViewController并拖入tableview以及tableviewCell,而且设置tableviewCell的style为Basic,Identifier为Cell,假设希望是自己定义cell的则须要选择custom,例如以下图,之后能够插入一个NavigationController:


不要忘记连接datasource和delegate。

如今能够编码了,在ViewController.m中:
#pragmamark - UITableViewDataSource
-(NSInteger)tableView:(UITableView*)tableView
numberOfRowsInSection:(NSInteger)section{
;
}
-(UITableViewCell*)tableView:(UITableView*)tableView
cellForRowAtIndexPath:(NSIndexPath*)indexPath{
staticNSString*CellIdentifier
= @"Cell";
UITableViewCell*cell
= [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell
== nil)
{
cell= [[UITableViewCellalloc]initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
}
cell.textLabel.text=@"话题";
returncell;
}
3、如今实现简单的push功能:
再次打开MainStoryboard文件,新拖入一个TableViewController,而且在右边project中新建一个TopicTableViewController的h文件和m文件,选中MainStoryboard中的TableViewController,将其class设置为TopicTableViewController,同上设置好tableview的cell。
*右键选择前一个viewcontroller的cell,连接push到新拖入的TableView
Controller,例如以下图:










这个时候执行就能正确push到新的tableview页面了。


假设你希望在push页面的时候做些什么操作的话,能够在ViewController.m文件里编码:
-(void)prepareForSegue:(UIStoryboardSegue*)segue
sender:(id)sender
{
if([[segueidentifier]isEqualToString:@"showSomething"]){
//dosomething you want
UIAlertView*alertView
= [[UIAlertViewalloc]initWithTitle:nilmessage:@"test"delegate:nilcancelButtonTitle:@"确定"otherButtonTitles:nil,nil];
[alertViewshow];
}
}
记住一定要设置push的segue,在这里我设置为showSomething。
执行能够看到在push页面的同一时候弹出了testalert框,如图:

二、获取指定storyboard中的object
前面的步骤依照第一、二步完毕,然后第三步完毕到*符号之前,这个时候看到的就是一个单独的新建的tableview controller,怎么获取它呢?非常easy,首先,MainStoryboard中选中新建的tableview
controller,设置其identifier为TopicTableViewController,如图:

接着,在你须要使用它的函数里,例如以下:
-(void)presentTimelineViewController:(BOOL)animated
{
UIStoryboard*storyboard
= [UIStoryboardstoryboardWithName:@"MainStoryboard"bundle:nil];
TopicTableViewController*topicViewController
= [storyboardinstantiateViewControllerWithIdentifier:@"TopicTableViewController"];
。。。
[self.navigationControllerpushViewController:topicViewControlleranimated:animated];
}
好了,基本上对Storyboard有了一些了解了吧。看到我的測试应用程序名字是什么吗?对,SinaWeibo,之后我会具体写一篇关于新浪微博开发的文章。
怎样在xcode中使用storyboard的更多相关文章
- Xcode中不用Storyboard,用纯xib创建TabBar模式视图
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 如果要开发Tab类型视图的App,在Xcode中可以使用对应的 ...
- Xcode中StoryBoard Reference 新特性的使用
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
- XCODE中使用Main.Storyboard拉入控件并实现事件(Swift语言)
如何在XCODE中的Main.Storyboard内拉入控件并实现一个简单的效果呢?本人由于刚接触Swift语言不久,对于IDE的操作还是很生疏,不懂了就在网上参考了网上前辈们的文章.以下我将演示如何 ...
- [IOS]译Size Classes with Xcode 6: One Storyboard for all Sizes
Size Classes with Xcode 6: One Storyboard for all Sizes 为所有的尺寸准备一个Storyboard 我最喜欢的Xcode6的特性是新的size c ...
- [翻译]使用Swift在Xcode中创建自定义控件
使用Swift在Xcode中创建自定义控件 原文 IBDesignable and IBInspectable With IBDesignable and IBInspectable, develop ...
- 网络粘贴---Xcode中可用到的快捷键
快捷键: 1.StoryBoard技巧 当你想直接在view中选择自己想要的元素时,但是又碍于一个view上叠加的元素太多很难直接选中,那么在这时,你同时按住键盘上的shift和 control键,然 ...
- Xcode 中 Git 的配置与使用
Xcode 中 Git 的配置与使用主要围绕下面几个问题展开阐述: 问题1,如何在Xcode中创建本地代码库,并添加和提交代码到本地代码库? 问题2,如何在Xcode中提交推送给远程服务器代码库? 问 ...
- Xcode 7:Storyboard Reference、Strong IBOutlet以及Scene Dock
本文由CocoaChina译者小袋子(博客)翻译原文:Storyboard Reference, Strong IBOutlet, Scene Dock in iOS 9 在这个教程中,我想要聊一些有 ...
- [翻译] USING GIT IN XCODE [3] 在XCODE中使用GIT[3]
USING GIT IN XCODE MAKING AND COMMITTING CHANGES Once you have a working copy of your project, it’s ...
随机推荐
- HTML5 Canvas Cheat Sheet
HTML5 Canvas Cheat Sheet HTML5 Canvas Cheat Sheet v1.x
- hdu 5631 Rikka with Graph(图)
n个点最少要n-1条边才能连通,可以删除一条边,最多删除2条边,然后枚举删除的1条边或2条边,用并查集判断是否连通,时间复杂度为O(n^3) 这边犯了个错误, for(int i=0;i<N;i ...
- MySQL数据库如何解决大数据量存储问题
利用MySQL数据库如何解决大数据量存储问题? 各位高手您们好,我最近接手公司里一个比较棘手的问题,关于如何利用MySQL存储大数据量的问题,主要是数据库中的两张历史数据表,一张模拟量历史数据和一张开 ...
- Unity 读取Excel
游戏有大多数配置文件,比如玩家等级,游戏商店信息等等.通常情况下把这些放入excel中来读取 第一种解决方案: xlsx –> csv –> 改变成UTF-8 或者Unicode编码 –& ...
- poj 3352 双连通分量
至少加几条边成为双连通分量 #include <iostream> #include <cstdio> #include <cstring> using names ...
- DWZ主从结构计算
最终效果图: 首先我们需要修改一下主从结构的源码dwz.database.js,如下: function tdHtml(field){ var html='',suffix=''; if(field. ...
- iOS8使用Core Graphics实现渐变效果-Swift基础教程
Core Graphics是一个强大的底层API,在这篇教程中我们主要使用Core Graphics来实现渐变效果,为了简单起见,我们采用线性渐变.线性渐变是从起点到终点颜色进行顺序渐变.教程在iOS ...
- 文件上传利器SWFUpload使用指南(转)
http://www.cnblogs.com/2050/archive/2012/08/29/2662932.html 文件上传利器SWFUpload使用指南 SWFUpload是一个flash和js ...
- onvif规范 中文介绍
什么是ONVIF ? ONVIF规范描述了网络视频的模型.接口.数据类型以及数据交互的模式.并复用了一些现有的标准,如WS系列标准等. ONVIF规范的目标是实现一个网络视频框架协议,使不同厂商所生产 ...
- .net 链接oracle
虽然EF6都快要出来了,但是对于Oracle数据库,仍然只能用DB first和Model First来编程,不能用Code First真是一个很大的遗憾啊. 好了,废话少说,我们来看看EF中是如何用 ...