怎样在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 ...
随机推荐
- ssl相关
http://www.willrey.com/support/ssl_DES.html http://www.07net01.com/linux/Linuxdejiamirenzhenggongnen ...
- oracle 库文件解决的方法 bad ELF interpreter: No such file or directory
今天是2014-05-27,今天遇到一个lib问题,再次记录一下.这是一个案例,更是一种解决该问题的方法过程. 当我们在使用sqlplus 登陆unix数据库的时候,有可能出现类似:xxxxxx ba ...
- UVA10199- Tourist Guide(割点)
题目链接 题意: 给出一张无向图,找出割点,字典序输出割点的名字. 思路:简单的割点的求解,用map映射.easy输出. 代码: #include <iostream> #include ...
- Java算法简介及排序剖析
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 从小白晋升,一路走来:从helloworld,到JFrame,再到Android:从城外小子,到内城 ...
- Lazy方式单列模式,一种线程安全模式的新选择
public class WeProxyClient { private static readonly Lazy<WeProxyClient> list = new ...
- RHEL5.8安装Sybase 15.7_x86_64
RHEL5.8安装Sybase 15.7如果您运行的是 RHEL 5 或更高版本,请使用以下设置:kernel.exec-shield = 0kernel.randomize_va_space = 0 ...
- Android默认启动程序问题
参考地址:http://www.cnblogs.com/Lewis/p/3316946.html 怎么让我们自己开发的Android程序设为默认启动呢?其实很简单,只要在AndroidManifest ...
- css直接写出小三角
在开发移动端项目时,总是遇到很多小三角,之前一直用图片,感觉好麻烦,今天尝试了直接用CSS写出小三角!先看看如何写出各种小三角! /*箭头向上*/ .arrow-up { ; ; border-lef ...
- css设置
box-size允许您以特定的方式定义匹配某个区域的特定元素. content-box(默认):宽度和高度分别应用到元素的内容框.在宽度和高度之外绘制元素的内边距和边框.border-box:为元素设 ...
- ASP.net+SQL server2008简单的数据库增删改查 VS2012
工具:VS2012 数据库:SQL server 简单说明:根据老师上课给的代码,进行了简单的改正适用于VS2012环境,包括注册.登录.查询.修改.删除功能,多数参考了网上的代码 百度云源代码连接t ...