[IOSB]StoryBoard简单使用

来源:互联网 发布:软件测试佩腾 编辑:程序博客网 时间:2024/06/07 20:34

[IOSB]StoryBoard简单使用


Demo地址:http://download.csdn.net/detail/u012881779/9146651

环境:Xcode7.0

只介绍了简单的页面搭建,包括自定义导航栏、页面跳转、页面间传递数据


/*页面跳转*/

1.新建一个项目,删掉StoryBoard中默认View Controller,拖选Navigation Controller并设置为“起始场景”同时隐藏导航栏和工具栏。



2.拖选一个View Controller自定义导航栏,  再从Navigation Controller拖一条Segue至View Controller并设置Relationship Segue为root view controller。

创建控制器RootViewController,不用选择xib

对StoryBoard中场景关联控制器:



3.再次拖选一个View Controller,并从导航栏Button拖选Segue至View Controller并设置Action Segue为modal。

设置页面跳转方式



4.再次拖选一个View Controller,并从导航栏Button拖选Segue至View Controller并设置Action Segue为push。


5.返回上一个页面。

不能再从View Controller拖Segue回Navigation Controller不然无法释放内存,在返回Button关联的点击事件添加方法:

- (IBAction)returnAction:(id)sender {    [self.navigationController popViewControllerAnimated:YES];}


/*页面间数据传递*/

创建代理:

#import <Foundation/Foundation.h>@protocol PassValueProtocol <NSObject>@required- (void)passValueAction:(id)sender;@end

父类里设置代理:

#import <UIKit/UIKit.h>#import "BaseViewController.h"#import "PassValueProtocol.h"@interface BaseViewController : UIViewController@property (strong, nonatomic) id <PassValueProtocol> delegate;@end
根控制器中设置:

//往后传值-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{    NSString *inputText = _fieldText.text;    BaseViewController *sendVC = segue.destinationViewController;    if ([sendVC respondsToSelector:@selector(setData:)]) {        //保持跳转页面中申明的字段和这里的@“data”一样        [sendVC setValue:inputText forKey:@"data"];        //数据传回这里使用代理        sendVC.delegate = self;    }}#pragma mark PassValueProtocol//传回数据- (void)passValueAction:(id)sender{    NSString *tempStr = (NSString *)sender;    _fieldText.text = tempStr;}
待移除控制器中设置:

#import "OneViewController.h"@interface OneViewController ()@property (weak, nonatomic) IBOutlet UITextField *oneTextField;@property (strong, nonatomic) NSString *data;@end@implementation OneViewController- (void)viewDidLoad {    [super viewDidLoad];    _oneTextField.text = self.data;}//返回- (IBAction)returnAction:(id)sender {    [self.delegate passValueAction:self.oneTextField.text];    [self dismissViewControllerAnimated:YES completion:nil];}@end


StoryBroad示意图:








0 0
原创粉丝点击