[IOS]Setting Bundle + StoryBoard

简介:

用storyboard添加一个导航栏,其中首页有一个switch,与setting联动,还有一个button,使用modal连接另一个viewControl,其上也有一个按钮,按下销毁本viewControl,回到前一页。

实现步骤:

1.创建一个SingleView的项目,勾选上storyboard。

2.向storyboard中添加一个NavigationController,两个ViewController,然后在NavigationController中右击指向第一个ViewController,然后设置为rootViewController,并且将箭头指向NavigationController。

3.将两个ViewController的Class分别设置为DXWViewController和DXWViewController1(两个自己创建的类,继承自ViewController)

4.创建setting文件,并将root.plist保存一个键值对,key改成switch

5.修改DXWViewController(主视图)


DXWViewController.h:

#import <UIKit/UIKit.h> #import "DXWViewController1.h" @interface DXWViewController : UIViewController<DXWFlipsideViewControllerDelegate> - (IBAction)change:(id)sender; @property (retain, nonatomic) IBOutlet UILabel *label; @property (retain, nonatomic) IBOutlet UISwitch *switchButton;  - (IBAction)showInfo:(id)sender;  @end

DXWViewController.m:

#import "DXWViewController.h"  @interface DXWViewController ()  @end  @implementation DXWViewController  -(void)viewWillAppear:(BOOL)animated {     [self changeData]; }  -(void)changeData {     NSUserDefaults *usr = [NSUserDefaults standardUserDefaults];     NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@YES,@"switch", nil];          [usr registerDefaults:dic];     ((UILabel *)self.label).text = [usr boolForKey:@"switch"]?@"开":@"关";     self.switchButton.on = [usr boolForKey:@"switch"];     //都要写入一下     [usr synchronize]; }  - (void)viewDidLoad {     [super viewDidLoad]; 	UIApplication *app = [UIApplication sharedApplication];     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeData) name:UIApplicationWillEnterForegroundNotification object:app]; }   - (void)dealloc {     [self.switchButton release];     [_label release];     [super dealloc]; } //实现协议的方法 - (void)flipsideViewControllerDidFinish:(DXWViewController1 *)controller {     [self dismissViewControllerAnimated:YES completion:nil]; } - (IBAction)change:(id)sender {     UISwitch *switchButton = sender;     NSUserDefaults *user = [NSUserDefaults standardUserDefaults];     [user setBool:switchButton.on forKey:@"switch"];     [user synchronize];     ((UILabel *)self.label).text = [user boolForKey:@"switch"]?@"开":@"关"; } - (IBAction)showInfo:(id)sender {     UIStoryboard *strBoard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];     DXWViewController1 *controller = [strBoard instantiateViewControllerWithIdentifier:@"DXWViewController1"];     controller.delegate = self;     controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;     [self presentViewController:controller animated:YES completion:nil]; } @end


上图中showInfo方法是通过代码的方法实现跳转到下一个view,如果是通过storyboard实现连线的方法然后跳过下一个view是这样实现:

@“Add”是连线的ID
//连线的方法 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {     if ([segue.identifier isEqualToString:@"Add"]) {         DXWViewController1 *controlller = segue.destinationViewController;         controlller.delegate = self;     } }


6.修改DXWViewController1(子视图)


DXWViewController.h:

#import <UIKit/UIKit.h> @class DXWViewController1;  @protocol DXWFlipsideViewControllerDelegate - (void)flipsideViewControllerDidFinish:(DXWViewController1 *)controller; @end @interface DXWViewController1 : UIViewController @property (assign, nonatomic) id <DXWFlipsideViewControllerDelegate> delegate; - (IBAction)done:(id)sender; @end

DXWViewController.m:

#import "DXWViewController1.h"  @interface DXWViewController1 ()  @end  @implementation DXWViewController1  - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {     self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];     if (self) {         // Custom initialization     }     return self; }  - (void)viewDidLoad {     [super viewDidLoad]; 	// Do any additional setup after loading the view. }  - (void)didReceiveMemoryWarning {     [super didReceiveMemoryWarning];     // Dispose of any resources that can be recreated. }  - (IBAction)done:(id)sender {     [self.delegate flipsideViewControllerDidFinish:self]; } @end















本文转蓬莱仙羽51CTO博客,原文链接:http://blog.51cto.com/dingxiaowei/1366559 ,如需转载请自行联系原作者
相关文章
|
2月前
|
自然语言处理 程序员 开发工具
iOS生成Bundle 资源文件包与使用
iOS生成Bundle 资源文件包与使用
36 0
|
9月前
|
存储 物联网 数据安全/隐私保护
iOS开发证书、bundle ID、App ID、描述文件、p12文件,及企业证书打包发布详述
iOS开发证书、bundle ID、App ID、描述文件、p12文件,及企业证书打包发布详述
|
iOS开发
IOS使用纯代码布局替换掉默认的storyboard
IOS使用纯代码布局替换掉默认的storyboard
81 0
|
开发工具 git iOS开发
iOS开发 - 不小心删除了Copy Bundle Resources怎么办?(多人开发频繁添加删除图片导致图片路径重复,编译报错)
iOS开发 - 不小心删除了Copy Bundle Resources怎么办?(多人开发频繁添加删除图片导致图片路径重复,编译报错)
195 0
iOS开发 - 不小心删除了Copy Bundle Resources怎么办?(多人开发频繁添加删除图片导致图片路径重复,编译报错)
|
存储 物联网 编译器
iOS开发证书、bundle ID、App ID、描述文件、p12文件,及企业证书打包发布详述
iOS开发证书、bundle ID、App ID、描述文件、p12文件,及企业证书打包发布详述
iOS开发证书、bundle ID、App ID、描述文件、p12文件,及企业证书打包发布详述
|
程序员 定位技术 vr&ar
最新 iOS 库 打包篇.a .bundle .framework
库是共享程序代码的方式,一般分为静态库和动态库。库是程序代码的集合,是共享程序代码的一种方式
678 0
最新 iOS 库 打包篇.a .bundle .framework
|
程序员 定位技术 vr&ar
iOS 库 打包篇.a .bundle .framework
库是程序代码的集合,是共享程序代码的一种方式
246 0
iOS 库 打包篇.a .bundle .framework
|
iOS开发
iOS - UIViewController生命周期(storyboard/Xib/纯代码)(下)
iOS - UIViewController生命周期(storyboard/Xib/纯代码)
|
iOS开发
iOS - UIViewController生命周期(storyboard/Xib/纯代码)(上)
iOS - UIViewController生命周期(storyboard/Xib/纯代码)
|
iOS开发 Windows
iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期
iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期 一、基本过程 新建一个项目,系统默认的主控制器继承自UIViewController,把主控制器两个文件删掉。 在storyboard中,默认的控制器是View Controller,而我们需要的是导航控制器,那么就把系统的给删掉,拖一个导航控制器进来,导航控制器中默认的第一个子控制器是一个tableview controller,这里不需要,把它删掉,重新拖三个View Controller到界面上进行连线,简单的设置就可以了。
805 0