明天這篇是UI的最後一篇了,前面再整理網絡篇
知識點
1.UIStoryBoard引見
2. UIStoryBoard的界面跳轉
3. UIStoryBoard界面之間的傳值
=========================
UIStoryBoard引見
UIStoryBoard是你可以用來定義用戶界面的一種新的方式,像xib。與xib不同的是它可以同時管理多個ViewController,而且可以在UIStoryBoard中配置ViewController 之間的跳轉關系。 假如主窗口只要一個view controller是作為UIStoryBoard的第一個界面,就需求勾選上 Initial Scene。UIStoryBoard將原有工程中的一切xib文件集成在一同,用拖拽的方式樹立起兩個viewController之間的跳轉關系,使得整個順序的UI跳轉邏輯清楚明了。運用UIStoryBoard後,界面相關的代碼編寫將更少。
1.假如主窗口只要一個view controller是作為story board的第一個界面,就需求勾選上 Initial Scene。
選中is initial view controller 以後的scene成為進入使用第一個scene

2.在UIStoryBoard當中可以直接在UITableView上定制cell

=========================
UIStoryBoard的界面跳轉
3.留意push和present的區別
1).push對應pop,present對應dismiss;
2).present只能逐級前往,push一切視圖由視圖棧控制,可以前往上一級,也可以前往到根vc,其他vc。
3).present普通用於不同業務界面的切換,push普通用於同一業務不同界面之間的切換。
4.如何跳轉到未連線的控制器
1)+ (UIStoryboard *)storyboardWithName:(NSString *)name bundle:(NSBundle *)storyboardBundleOrNil;
作用:獲取某個對應的UIStoryboard對象
2)- (id)instantiateViewControllerWithIdentifier:(NSString *)identifier
作用:獲取該UIStoryboard的文件中的某個帶有identifier標識的控制器 //跳轉到未銜接的控制器
//獲得Main.StoryBoard UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; //經過StoryBoardID取得對應的控制器對象 UIViewController *ctl = [storyBoard instantiateViewControllerWithIdentifier:@"ctlC"]; //代碼跳轉 [self.navigationController pushViewController:ctl animated:YES];
6.如何回到前一個界面
在上一級視圖控制器當中完成一個辦法,要滿足一下格式
-(IBAction)+恣意辦法名+(UIStoryboardSegue *)+恣意變量名
//UIStoryBoard的連線回跳辦法
-(IBAction)unWindingSegue:(UIStoryboardSegue *)segue{
NSLog(@"sourceViewController = %@ destinationViewController = %@",segue.sourceViewController,segue.destinationViewController);
//作用:在反向傳值當中會使用到
=========================
UIStoryBoard界面之間的傳值
1.正向傳值
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
作用:行將切換場景時分調用
//當切換界面(push,present)的時分,就會調用以下辦法
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
//正向傳值
if ([segue.identifier isEqualToString:@"login"]) {
LoginViewController *ctl = segue.destinationViewController;
//賦值
ctl.userNameStr = self.userNameTF.text;
ctl.passwordStr = self.passWordTF.text;
}
2.反向傳值(傳統的block,協議代理,告訴中心,單例傳值仍然見效)
-(IBAction)unWind:(UIStoryboardSegue *)segue
作用:前往上一個場景時分調用
//UIStoryBoard的連線回跳辦法
//先完成回跳辦法,才干連線
-(IBAction)unWindingSegue:(UIStoryboardSegue *)segue{
//反向傳值(UIStoryBoard公用)
//判別能否點擊的是注冊完成
if ([segue.identifier isEqualToString:@"finish"]) {
//嚴謹
if ([segue.sourceViewController isKindOfClass:[RegisterViewController class]]) {
RegisterViewController *ctl = segue.sourceViewController;
//刷新UI
self.userNameTF.text = ctl.userNameTF.text;
self.passWordTF.text = ctl.passWordTF.text;
//作用:在反向傳值當中會使用到
}
}
【iOS開發-UI (十)StoryBoard】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!