Storyboard可视化编程详解

storyboard :故事版,描述软件界面。

应用程序的启动原理:

应用程序启动的时候,首先会加载一个Main Interface 里的 main.storyboard

UIViewController 控制器,处理界面的各种事件,并负责界面的创建和销毁。

IBAction:

①只能修饰方法返回值类型

②被IBAction修饰的方法能脱线到storyboard中、返回值实际是void

③使用方式 -(IBAction)buttonClick{}

 

IBOutlet:

①只能修饰属性

②被IBAction修饰的方法能脱线到storyboard中

③使用方式 @property (nonatomic, weak)IBOutlet UILabel *label;

 

IBOutletCollection:

①将界面上一组相同的控件连接到同一个数组中

#ifndef IBOutletCollection
#define IBOutletCollection(ClassName)
#endif

IBOutletCollection带有一个参数,该参数是一个类名。

②通常情况下,我们使用一个IBOutletCollection属性时,属性必须是strong的,且类型是NSArray,如下所示

@property (strong, nonatomic) IBOutletCollection(UIScrollView) NSArray *scrollViews;

③使用此属性要注意两点:

1>IBOutletCollection集合中对象的顺序是不确定的。我们通过调试方法可以看到集合中对象的顺序跟我们连接的顺序是一样的。但是这个顺序可能会因为不同版本的Xcode而有所不同。所以我们不应该试图在代码中去假定这种顺序。

2>不管IBOutletCollection(ClassName)中的控件是什么,属性的类型始终是NSArray。实际上,我们可以声明是任何类型,如NSSet,NSMutableArray,甚至可以是UIColor,但不管我们在此设置的是什么类,IBOutletCollection属性总是指向一个NSArray数组。

IB全称 : Interface Builder

 

故事版StoryBoard创建ViewController

①创建同名storyBoard

②连线-选中-勾选(Is Initial View Controller)

③初始化方法:

UIStoryboard * storyBoard = [UIStoryboard storyboardWithName:@"HKMeViewController" bundle:nil];
//加载箭头指向的VC
HKMeViewController * meVC = [storyBoard instantiateInitialViewController ];

跳转Main.storyboard上的viewcontroller+storyboardID

SCAnnouncePushController * announcePushVC = [[UIStoryboard storyboardWithName:@"Main" bundle:NSBundle.mainBundle] instantiateViewControllerWithIdentifier:@"publishAnnounce"];
announcePushVC.team = [NIMSDK.sharedSDK.teamManager teamById:self.session.sessionId];
[self.navigationController pushViewController:announcePushVC animated:YES];

 

 

 

 

 

原文地址:https://www.cnblogs.com/StevenHuSir/p/storyboard.html