oracle网站开发,重庆市工程造价信息网查询,菏泽城乡住房建设局网站,百度推广app1 使用Storyboard完成各项常见功能 1.1 问题 故事板Storyboard是IOS5开始引入的一个新的系统#xff0c;将多个视图文件#xff08;类似xib文件#xff09;集中到一个单独的可视化工作区间#xff0c;负责创建和管理所有的界面及界面间的跳转#xff0c;每一个Storyboard中… 1 使用Storyboard完成各项常见功能 1.1 问题 故事板Storyboard是IOS5开始引入的一个新的系统将多个视图文件类似xib文件集中到一个单独的可视化工作区间负责创建和管理所有的界面及界面间的跳转每一个Storyboard中的单个视图文件称之为场景Scene可以使用Xcode的Interface Builder来进行编辑。 本案例将学习如何使用Storyboard完成场景的创建并且使用两种不同的方式实现Modal模式的跳转如图-1所示 图-1 1.2 方案 首先创建一个SingleViewApplication项目会自动帮我们创建好一个TRViewController类并且自动带有Storyboard文件默认情况下Storyboard里面有一个已经创建好的场景已和TRViewController类绑定。 另外不用在程序的入口方法中创建Window对象和根视图控制器StoryBoard会自动帮我们创建。 其次再新创建一个场景从对象库中拖放一个视图控制器对象到StoryBoard中即可并创建一个视图控制器类TRViewController2继承至UIViewController。 在Storyboard中选中第二个场景在右边栏的第三个检查器中修改类名将TRViewController2和第二个场景绑定。 然后分别在第一个场景和第二个场景中拖放一个Button控件在右边栏的第四个检查器中设置好相关属性。 选中第一个场景中的Button控件按住Control键往第二个场景拉线实现Modal方式的页面跳转。给场景二中的Button添加事件方法通过代码的方式实现界面的回跳。 最后通过Segue加代码的方式实现界面跳转在场景一中再拖放一个Button控件并关联成方法。选中场景一上面的黄色圆球按钮按住Control键往第二个场景上拖拽释放鼠标选择Modal模式跳转。 选中Segue对象在右边栏的检查器四中给Identifier进行赋值给Segue对象取一个标识“Segue”identifier是一个NSString类型的属性。 在TRViewController.m文件中实现Button的事件方法使用performSegueWithIdentifier:sender:方法实现页面跳转。 1.3 步骤 实现此案例需要按照如下步骤进行。 步骤一创建一个带有Storyboard的项目 首先创建一个SingleViewApplication项目Xcode会自动帮我们创建好一个TRViewController类并且自动带有Storyboard文件。 默认情况下Storyboard里面有一个已经创建好的场景并且已经和TRViewController类绑定。另外不需要再到程序的入口方法中创建Window对象和根视图控制器对象StoryBoard会自动帮我们创建在StoryBoard文件中有一个箭头指向的场景就是程序的根视图控制器如图-2所示 图-2 步骤二创建第二个场景并和代码绑定 在Storyboard中创建一个新场景从对象库中拖放一个视图控制器对象到StoryBoard中如图-3所示 图-3 然后创建一个视图控制器类TRViewController2继承至UIViewController。在Storyboard中选中第二个场景在右边栏的第三个检查器中修改类名将TRViewController2和第二个场景绑定在一起如图-4所示 图-4 步骤三通过Segue实现界面跳转 StoryBoard中每个视图上的控件都和xib文件的操作方式一样可以直接拖拽摆放在视图上也同样可以通过拉线的方式关联成IBOutletIBCollectionOutlet以及IBAction等属性。 首先分别在第一个场景和第二个场景中拖放一个Button控件在右边栏的第四个检查器中设置好相关属性。 然后选中第一个场景中的Button控件按住Control键往第二个场景拉线释放鼠标在弹出的窗口中选择Modal方式如图-5所示 图-5 最后给场景二中的Button添加事件方法back在该方法中通过代码的方式实现界面的回跳代码如下所示 - (IBAction)back:(UIButton *)sender {[selfdismissViewControllerAnimated:YEScompletion:nil];} 这里需要注意返回到第一个界面时不能再继续使用连线的方式否则会创建新的视图控制器对象而不是返回以前的视图控制器。 步骤四通过Segue加代码的方式实现界面跳转 首先在场景一中再拖放一个Button控件并关联成方法goToSecond:。选中场景一上面的黄色圆球按钮按住Control键往第二个场景上拖拽释放鼠标选择Modal模式跳转如图-6所示 图-6 注意此时应该选中的是场景本身而不再是按钮。然后选中Segue对象在右边栏的检查器四中给Identifier进行赋值identifier是Segue对象一个NSString类型的属性表示Segue的标识用于区分不同的Segue对象本案例给Segue对象取一个标识“Segue”如图-7所示 图-7 在TRViewController.m文件中实现Button的事件方法goToSecond:在该方法中使用performSegueWithIdentifier:sender:方法实现页面跳转identifier参数就是刚才设置的Segue的标识代码如下所示 - (IBAction)goToSecond:(UIButton *)sender {[selfperformSegueWithIdentifier:Segue sender:nil];} 1.4 完整代码 本案例中TRViewController.m文件中的完整代码如下所示 #import TRViewController.hinterfaceTRViewController ()endimplementationTRViewController- (IBAction)goToSecond:(UIButton *)sender {[selfperformSegueWithIdentifier:Segue sender:nil];}end 本案例中TRViewController2.m文件中的完整代码如下所示 #import TRViewController2.hinterface TRViewController2 ()endimplementation TRViewController2- (IBAction)back:(UIButton *)sender {[selfdismissViewControllerAnimated:YEScompletion:nil];}end 2 将场景嵌入到导航中并进行Push跳转 2.1 问题 本案例在StoryBoard中分别使用手动和自动的方式创建带有导航控制器的场景并实现Push模式的界面跳转如图-8所示 图-8 2.2 方案 首先创建一个带有Storyboard的SingleViewApplication项目。先使用手动的方式给场景添加导航控制器 1从对象库拖拽一个NavigationController对象到storyboard中删除NavigationController自带的视图控制器默认是一个表视图控制器 2选中NavigationController对象往自己的视图控制器上拉线释放鼠标在弹出的对话框中在选择root view Controller就完成了添加导航控制器。 然后将上一步拖拽的NavigationController对象删除再使用自动嵌入NavigationController的方式给视图控制器添加导航控制器。 选中需要被导航控制器包含的场景在Xcode菜单栏中选中Editor选项然后选中Embed In最后在弹出的窗口中选中NavigationController即可。 最后再创建一个新的场景从对象库拖拽一个视图控制器对象到storyboard中在上一个场景中拖拽一个跳转按钮然后选中按钮按住Control键连线到新创建的场景上在弹出的菜单中选择Push即可实现界面的跳转。 2.3 步骤 实现此案例需要按照如下步骤进行。 步骤一使用手动的方式给场景添加导航控制器 首先创建一个带有Storyboard的SingleViewApplication项目。从对象库拖拽一个NavigationController对象到storyboard中删除NavigationController自带的视图控制器默认是一个表视图控制器如图-9所示 图-9 然后选中storyboard中的NavigationController对象往自己的视图控制器上拉线释放鼠标在弹出的对话框中选择root view Controller如图-10所示 图-10 最后不要忘了将程序入口的箭头移动到NavigaitonController的前面表示程序从此处入口如图-11所示 图-11 步骤二使用自动的方式给场景添加导航控制器 先将上一步拖拽的NavigationController对象删除然后选中需要被导航控制器包含的场景在Xcode菜单栏中选中Editor选项然后选中Embed In最后在弹出的窗口中选中NavigationController即可如图-12所示 图-12 步骤三实现Push模式跳转 首先创建一个新的场景从对象库拖拽一个视图控制器对象到storyboard中。然后在上一个场景中拖拽一个跳转按钮在右边栏检查器四设置按钮的相关属性。 最后选中按钮按住Control键往新创建的场景上拉线在弹出的菜单中选择Push即可实现界面的跳转如图-13所示 图-13 如果此时入口箭头消失了可以在storyboard中选中NavigationController然后在右边栏检查器四中的Is Initial View Controller选择框上打钩如图-14所示 图-14 如果不需要另外写代码可以不用创建视图控制器类。最后在StoryBoard中完成的界面如图-15所示 图-15 3 给场景添加Title、按钮、ToolBar等 3.1 问题 本案例直接在上一个案例的基础上实现学习如何在Storyboard中给导航栏添加标题和按钮并设置ToolBar工具条如图-16所示 图-16 3.2 方案 首先给导航栏添加标题选中场景一双击导航栏的中间区域即可编辑场景一的导航栏所显示的标题相当于使用代码给self.title属性赋值也可以在右边栏的检查器四中编辑标题。场景二也可以通过同样的方式编辑标题。 然后给导航栏添加左右按钮选中场景一直接从对象库中拖拽一个BarButtonItem控件到场景一的NavigationBar的左区域或右区域即可可以在检查器四中设置BarButtonItem控件的的相关属性。 最后设置ToolBar工具条在StoryBoard中可以直接设置显ToolBar选中NavigationController在右边栏的检查器四中的shows ToolBar选择框上打勾然后在具体的界面场景中向ToolBar拖放BarButtonItem。 3.3 步骤 实现此案例需要按照如下步骤进行。 步骤一给导航栏添加标题 首先给导航栏添加标题选中场景一双击导航栏的中间区域即可编辑场景一的导航栏所显示的标题相当于使用代码给self.title属性赋值如图-17所示 图-17 或者在右边栏的检查器四中编辑导航栏的标题如图-18所示 图-18 用同样的方式给场景二的导航栏添加标题。 步骤二给导航栏添加左右按钮 在Storyboard中选中场景一从对象库中拖拽一个BarButtonItem控件到导航栏的左区域上如图-19所示 图-19 然后在右边栏的检查器四中设置BarButtonItem的相关属性BarButtonItem的样式、标题、图片等都可以直接进行设置如图-20图-21所示 图-20 图-21 最后按同样的方式再拖拽一个BarButtonItem控件到导航栏的右区域上如图-21所示 图-21 在Storyboard中是不能往导航栏拖拽多个左按钮或右按钮的如果需要放置多个按钮就只能通过代码的方式。 步骤三设置ToolBar工具条 首先让ToolBar工具条显示出来在StoryBoard中可以直接设置显示ToolBar选中NavigationController在右边栏的检查器四中的shows ToolBar选择框上打勾如图-22所示 图-22 然后选中场景一向ToolBar依次拖放BarButtonItem在右边栏的检查器四中可以设置BarButtonItem的样式完成效果如图-23所示 图-23 4 将场景嵌入到TabBar 4.1 问题 本案例直接在上一个案例的基础上完成在StoryBoard中分别使用手动和自动的方式创建带有标签控制器的场景如图-24所示 图-24 4.2 方案 和操作导航控制器类似首先从对象库中拖拽一个TabBarController对象到Storyboard中删除TabBarController自带的视图控制器。 然后选中TabBarController按住Control键连线到场景一的NavigaitionControllerToolBar需要隐藏释放鼠标在弹出的窗口中选择view controllers。 在场景一的NavigationController上选中TabBar的Item在右边栏的检查器四中设置相关属性例如按钮样式、标题显示图片等。以同样的方式给TabBarController再添加两个子视图控制器。 最后将上一步拖拽的TabBarController对象删除再使用自动嵌入TabBarController的方式给视图控制器添加导航控制器。 选中场景一的导航控制器在Xcode菜单栏中选中Editor选项然后选中Embed In最后在弹出的窗口中选中TabBarController即可。然后以拉线的方式关联其他子视图控制器。 4.3 步骤 实现此案例需要按照如下步骤进行。 步骤一使用手动的方式给场景添加标签控制器 从对象库拖拽一个TabBarController对象到storyboard中删除TabBarController自带的视图控制器如图-25所示 图-25 然后选中storyboard中的TabBarController对象往场景一的NavigationController上拉线释放鼠标在弹出的对话框中在选择root view Controller如图-26所示 图-26 在场景一的NavigationController上选中TabBar的Item在右边栏的检查器四中设置相关属性例如按钮样式、标题显示图片等如图-27所示 图-27 最后以同样的方式给TabBarController添加两个子视图控制器并将程序入口的箭头放置到TabBarController的前面表示程序从此处入口如图-28所示 图-28 步骤二使用自动的方式给场景添加标签控制器 先将上一步拖拽的TabBarController对象删除然后选中需要被导航控制器包含的场景在Xcode菜单栏中选中Editor选项然后选中Embed In最后在弹出的窗口中选中TabBarController即可如图-29所示 图-29 然后以拉线的方式关联其他子视图控制器使用同步骤二相同的方法设置TabBar上Item的属性。 5 使用segue方式跳转时的传值 5.1 问题 Storyboard让界面跳转变得更加的简单那么同样也会存在界面之间的正向传值和反向传值本案例使用Segue实现页面之间的跳转和正向传值反向传值和之前的方法相同将第一个界面TextField里面的输入内容传递给第二个界面如图-30所示 图-30 5.2 方案 首先同样创建好一个SingleViewApplication项目在Storyboard里面拖放两个视图控制器的场景分别和两个视图控制器类TRFirstViewController和TRSecondViewController绑定。 其次在第一个场景中拖放一个TextField控件和一个Button控件并将TextField关联成私有属性textField。 在第二个场景中拖放一个Label控件和一个Button控件并将Label关联成私有属性label将Button关联成方法back该方法用于回跳到第一个界面。 然后选中场景一中的Button按住Control键往第二个场景拉线实现Modal模式的跳转。 在TRSecondViewController类中定义一个NSString类型的公开属性massage用于接收传递过来的数据。 最后在TRFirstViewController.m文件中重写方法prepareForSegue:sender:该方法会在界面跳转之前被自动调用Segue参数就是连接两个场景的Segue对象。在该方法内部将textField输入框中的内容赋值给TRSecondViewController的message属性从而进行传值。 在TRSecondViewController.m文件中重写方法viewWillAppear在此方法中将接收到数据显示到label上 5.3 步骤 实现此案例需要按照如下步骤进行。 步骤一创建项目搭建场景 在创建好的Xcode项目中创建两个视图控制器类TRFirstViewController和TRSecondViewControlle全都继承至UIViewController。 在Storyboard里面拖放两个视图控制器的场景分别和两个视图控制器类TRFirstViewController和TRSecondViewController进行绑定。 其次在第一个场景中拖放一个TextField控件和一个Button控件并将TextField关联成TRFirstViewController的私有属性textField代码如下所示 interfaceTRFirstViewController ()property (weak, nonatomic) IBOutletUITextField *textField;end 在第二个场景中拖放一个Label控件和一个Button控件并将Label关联成TRSecondViewController的私有属性label将Button关联成方法back该方法用于回跳到第一个界面代码如下所示 //Label的输出口属性-interfaceTRSecondViewController ()property (weak, nonatomic) IBOutletUILabel *label;end//Button的back方法- (IBAction)back:(UIButton *)sender {[selfdismissViewControllerAnimated:YEScompletion:nil];} 步骤二创建Segue对象实现界面跳转 选中场景一中的Button按住Control键往第二个场景拉线释放鼠标在弹出的窗口中选择Modal模式实现界面跳转如图-31所示 图-31 在TRSecondViewController类中定义一个NSString类型的公开属性massage用于接收传递过来的数据代码如下所示 interfaceTRSecondViewController : UIViewControllerproperty (nonatomic,strong) NSString *message;end 步骤三关联代码实现方法 首先在TRFirstViewController.m文件中重写方法prepareForSegue:sender:该方法会在界面跳转之前被自动调用Segue参数就是连接两个场景的Segue对象可以通过segue.destinationViewControllerSegue属性获取到TRSecondViewController对象并将textField输入框中的内容赋值给TRSecondViewController的message属性从而进行传值代码如下所示 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {//拿到目标VC对象TRSecondViewController *destination segue.destinationViewController;//给destination的公开属性赋值destination.message self.textField.text;} 最后在TRSecondViewController.m文件中重写方法viewWillAppear在此方法中将接收到数据显示到label上代码如下所示 -(void)viewWillAppear:(BOOL)animated {[superviewWillAppear:animated];self.label.text self.message;} 5.4 完整代码 本案例中TRFirstViewController.m文件中的完整代码如下所示 #import TRFirstViewController.h#import TRSecondViewController.hinterfaceTRFirstViewController ()property (weak, nonatomic) IBOutletUITextField *textField;endimplementationTRFirstViewController//父类中的方法此方法会在Segue跳转之前自动调用-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {//拿到目标VC对象TRSecondViewController *destination segue.destinationViewController;//给destination的公开属性赋值destination.message self.textField.text;}end 隐藏 本案例中TRSecondViewController.h文件中的完整代码如下所示 #importUIKit/UIKit.hinterfaceTRSecondViewController : UIViewControllerproperty (nonatomic,strong) NSString *message;end 本案例中TRSecondViewController.m文件中的完整代码如下所示 #import TRSecondViewController.hinterfaceTRSecondViewController ()property (weak, nonatomic) IBOutletUILabel *label;endimplementationTRSecondViewController-(void)viewWillAppear:(BOOL)animated {[superviewWillAppear:animated];self.label.text self.message;}- (IBAction)back:(UIButton *)sender {[selfdismissViewControllerAnimated:YEScompletion:nil];}end 6 使用代码的方式实现界面跳转 6.1 问题 使用Segue实现界面跳转的好处就是方便、灵活。但是程序中经常也会用到手动方式跳转界面。本案例直接在上一个案例的基础上实现使用代码的方式实现storyboard场景之间的跳转以及storyboard和xib之间的跳转如图-32所示 图-32 6.2 方案 首先让场景一嵌入NavigationController然后在场景一上面拖拽一个Button控件并将标题命名为“goToSecondVCByCode”将按钮关联成TRFirstViewController的方法goToSecondVC。 其次选中场景二在右边栏的检查器三中的设置Storyboard ID值给场景二命名一个标识为“SecondVC”。 然后在TRFirstViewController.m文件中实现goToSecondVC方法该方法内部通过Storyboard的instantiateViewControllerWithIdentifier:方法获取到TRSecondViewController对象并通过push方法实现跳转。 最后实现Stroyboard跳转到xib创建一个带有xib的视图控制器类TRThirdViewController在xib中拖放一个回跳按钮关联成TRThirdViewController的方法backToFirst:实现该方法通过dismiss方法回跳到第一个界面。 在场景一上面拖拽一个Button控件并将标题命名为“goToThirdXibByCode”将按钮关联成TRFirstViewController的方法goToThirdVC在该方法内通过initWithNIbName获取到TRThirdViewController对象并通过push方法实现界面跳转。 6.3 步骤 实现此案例需要按照如下步骤进行。 步骤一使用代码实现场景一和场景二之间的跳转 首先让场景一嵌入NavigationController然后在场景一上面拖拽一个Button控件并将标题命名为“goToSecondVCByCode”并将按钮关联成TRFirstViewController的方法goToSecondVC。 然后选中场景二在右边栏的检查器三中的设置Storyboard ID值给场景二命名一个标识为“SecondVC”如图-33所示 图-33 最后在TRFirstViewController.m文件中实现goToSecondVC方法该方法内部通过Storyboard的instantiateViewControllerWithIdentifier:方法获取到TRSecondViewController对象并通过push方法实现跳转代码如下所示 - (IBAction)goToSecondVCByCode:(UIButton *)sender {TRSecondViewController *secondVC [self.storyboardinstantiateViewControllerWithIdentifier:SecondVC];secondVC.message self.textField.text;[self.navigationControllerpushViewController:secondVCanimated:YES];} 步骤二实现从Storyboard文件和Xib文件之间的跳转 storyboard和xib是可以一起工作从storyboard可以直接跳转到xib文件仅限push跳转方式操作方式和以前完全相同。 首先创建一个带有xib的视图控制器类TRThirdViewController继承至UIViewController。 然后在xib文件中拖放一个回跳按钮并将按钮关联成TRThirdViewController的方法backToFirst:实现该方法代码如下所示 - (IBAction)backToFirst:(UIButton *)sender {[selfdismissViewControllerAnimated:YEScompletion:nil];} 最后在场景一上面拖拽一个Button控件并将标题命名为“goToThirdXibByCode”将按钮关联成TRFirstViewController的方法goToThirdVC在该方法内通过initWithNIbName获取到TRThirdViewController对象并通过push方法实现界面跳转代码如下所示 - (IBAction)goToThirdXibByCode:(UIButton *)sender {TRThirdViewController *thirdVC [[TRThirdViewControlleralloc]initWithNibName:TRThirdViewController bundle:nil];[self.navigationControllerpushViewController:thirdVCanimated:YES];} 6.4 完整代码 本案例中TRFirstViewController.m文件中的完整代码如下所示 #import TRFirstViewController.h#import TRSecondViewController.h#import TRThirdViewController.hinterfaceTRFirstViewController ()property (weak, nonatomic) IBOutletUITextField *textField;endimplementationTRFirstViewController-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {TRSecondViewController *destination segue.destinationViewController;destination.message self.textField.text;}- (IBAction)goToSecondVCByCode:(UIButton *)sender {TRSecondViewController *secondVC [self.storyboardinstantiateViewControllerWithIdentifier:SecondVC];secondVC.message self.textField.text;[self.navigationControllerpushViewController:secondVCanimated:YES];}- (IBAction)goToThirdXibByCode:(UIButton *)sender {TRThirdViewController *thirdVC [[TRThirdViewControlleralloc]initWithNibName:TRThirdViewController bundle:nil];[self.navigationControllerpushViewController:thirdVCanimated:YES];}end 7 完成乐库项目中的静态表 7.1 问题 使用storyboard实现静态表视图比xib方式更简单、更方便更灵活。本案例使用Storyboard重新完成乐库项目中的“更多”界面如图-34所示 图-34 7.2 方案 首先同样创建一个SingleViewApplication项目将Storyboard中原有的场景删除然后从对象库中拖拽一个TableViewController的对象到Storyboard中该表视图控制器就是该程序的根视图控制器。 其次让TableViewController嵌入NavigationController在Storyboard中选中TableView然后在右边栏的第四个检查器中将content属性设置为Static Cells即将表视图设置为静态可以直接在storyboard的场景中操作表视图的表头视图、分区和单元格。 然后根据界面需要直接在表视图的表头视图、分区和单元格上拖拽所需要的视图和控件。 再创建一个表视图控制器类TRMusicTableViewController和Storyboard中的场景进行绑定将TableView的三问方法删除不再需要手动实现。 最后在Storyboard中通过Segue实现点击单元格跳转和点击辅助视图跳转。 7.3 步骤 实现此案例需要按照如下步骤进行。 步骤一创建静态表视图场景 首先在创建好的Xcode项目中将Storyboard中原有的场景删除然后从对象库中拖拽一个TableViewController的对象到Storyboard中该表视图控制器就是该程序的根视图控制器如图-35所示 图-35 然后让TableViewController嵌入NavigationController在Storyboard中选中TableView然后在右边栏的第四个检查器中将content属性设置为Static Cells即将表视图设置为静态将Sections设置为3表示有三个分区如图-36所示 图-36 步骤二表头视图、分区和单元格 在storyboard中可以直接操作静态表视图的表头视图、分区和单元格包括拖放视图和控件设置坐标和宽高还可以直接复制粘贴。 首先设置表头视图直接拖放一个View控件到TableView中注意要摆放到表头视图所在的位置在单元格的前面如图-37所示 图-37 在View视图界面上直接拖放所需要的控件并在右边栏的检查器中设置各个控件的相关属性如图-38所示 图-38 其次设置每个TableViewCell本案例中有三个分区第一个分区何第二个分区都有三个单元格第三个分区有一个单元格。每个分区的单元格都是拖放的一个TableViewCell对象先设置前两个分区的单元格。 选中需要编辑的单元格在右边栏的第四个检查器中可以设置单元格的各种属性包括单元格的样式辅助视图的样式分隔线的样式图片等如图-39所示 图-39 然后根据界面需求直接将对象库中的控件拖放到TableViewCell的ContentView中其中第二个分区的第二个单元格还需要自定义辅助视图在Storyboard中自定义辅助视图也很简单将一个Switch控件拖放到场景中但不要放进视图控制器中如图-40所示 图-40 选中场景中TableViewCell在右边栏的检查器六中(或选中TableViewCell点右键)连接accessoryView到该控件如图-41所示 图-41 第一分区和第二分区的tableViewCell设置完成后Storybaord中的界面如图-42所示 图-42 接下来设置第三个分区的单元格第三个分区的单元格只有一个但是单元格的高度是自定义的首先选中单元格在右边栏的检查器四中将style设置为Custom在检查器五中设置单元格的高度如图-43所示 图-43 然后调整整个TableView的高度选中场景在右边栏的检查器四中将Size 设置为Freeform如图-44所示 图-44 再选中tableView在检查器五中设置TableView的高度如图-45所示 图-45 最后在tableViewCell的ContentView上拖放界面所需要的控件并设置相关属性最后完成的效果如图-46所示 图-46 步骤三删除三问方法 创建一个表视图控制器类TRMusicTableViewController继承至UITableViewController注意不要再带有xib文件将TRMusicTableViewController和Storyboard中的场景进行绑定如图-47所示 图-47 然后在TRMusicTableViewController.m文件中删除自动生成的三问协议U方法通过Storyboard搭建的静态表视图不在需要通过代码加载数据Storyboard会自动帮我们完成创建可以根据程序需要实现表视图其他的委托事件的响应方法例如didSelectRowAtIndexPath:方法。 步骤四通过Segue实现跳转 在Storyboard中点击单元格Cell跳转和点击辅助视图AccessoryView跳转都可以通过Segue来实现不需要额外写代码。 首先在storyboard中另外拖放两个场景然后选中第一个分区的第一个单元格按住Control键往第二个场景上拖拽释放鼠标选Selection Segue选项下的Push模式即完成通过点击单元格跳转如图-48所示 图-48 再次选中第一个分区的第一个单元格按住Control键往第三个场景上拖拽释放鼠标这次选择Accessory Action选项下的Push模式即完成通过点击单元格的辅助视图完成跳转如图-49所示 from: http://www.cnblogs.com/52190112cn/p/5049388.html