IOS开发之获取Storyboard建立的ViewController

  前面的两篇博客都是学习有关屏幕适配也就是相对布局的东西,这篇博客中将会学习视图间的切换。视图间的切换咱们能够用代码完成或者用storyboard来创建各个视图控制器间的关系。在须要用到代码进行切换时会用代码进行视图间的跳转。下面的东西咱们会主要介绍到NavigationController来进行视图间的切换。下面也是和以前同样把代码和storyboard结合起来学习。布局

  下面介绍一下咱们要实现的功能和效果: App打开的第一个界面是登录页面,登录页面由用户名和密码以及一个登录按钮构成。当登录成功时会push到第二个页面,第二个页面有三个按钮,A,B和C, 点击不一样的按钮而后会跳转到相应的View。学习

  1.首先咱们先用咱们的storyboard来拖拽出咱们要用的控件,再添加一个NavigationController,下面图一是给咱们的主视图添加NavigatinController, 图二是最终效果spa

                         

 

  2.由于要由登录状态来判断下面的View是否出现,因此主视图和带有A,B,C三个按钮的视图之间的切换不能用storyboard实现,咱们要用代码关联实现。下面是登录成功后要跳转的模块截图:code

                

  3.以上拖拽工做到此结束,下面要实现咱们的业务逻辑和关联视图之间的关系,为了关联视图时能找到带有三个按钮的视图,咱们须要设置一下该视图的StoryboardID,入下图  blog

                               

 

  4.下面来编写咱们的代码,上面咱们用到了TextField,咱们须要处理键盘的回收事件,因此咱们的ViewController要遵照UITextFiledDelegate协议,实现有关键盘的方法事件

    (1)遵照UITextFieldDelegate协议ci

1
2
3
4
#import <UIKit/UIKit.h>
 
@interface ViewController : UIViewController<UITextFieldDelegate>
@end

​    (2)在ViewController.m中中进行回调注册和实现协议中相应的方法,代码以下:博客

1
2
3
4
5
6
7
8
9
10
11
12
13
14
-( BOOL ) textFieldShouldReturn:(UITextField *)textField
{
     [self.userName resignFirstResponder];
     [self.password resignFirstResponder];
     return  YES;
}
 
- ( void )viewDidLoad
{
     [super viewDidLoad];
     // Do any additional setup after loading the view, typically from a nib.
     self.userName.delegate = self;
     self.password.delegate = self;
}

  5.处理完键盘的事儿,就该处理咱们当登录按钮点击时回调的事件了,首先在回调方法中获取TextFiled的值,由值的状况来实现是否进行页面间的切换。 在页面切换时咱们得关联两个页面中的关系。string

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
- (IBAction)tapButton:(id)sender {
     
     NSString *username = self.userName.text;
     NSString *password = self.password.text;
     
     if  ([username isEqualToString:@ "admin" ] && [password isEqualToString:@ "admin" ])
     {
         //获取storyboard: 经过bundle根据storyboard的名字来获取咱们的storyboard,
         UIStoryboard *story = [UIStoryboard storyboardWithName:@ "Main"  bundle:[NSBundle mainBundle]];
         
         //由storyboard根据myView的storyBoardID来获取咱们要切换的视图
         UIViewController *myView = [story instantiateViewControllerWithIdentifier:@ "myView" ];
         
         //由navigationController推向咱们要推向的view
         [self.navigationController pushViewController:myView animated:YES];
         
     }
 
}

​      代码说明:关联两个View须要三部it

        1.获取storyboard: 经过bundle的名获取bundle, 在经过storyborad的名字来获取咱们的storyboard;

        2.在由storyboard获取storyboardID是myView的View;

        3.执行由当前View推向咱们获取到的myView;

    至此咱们的主要代码就编写完成,接下来看一下运行效果吧:

                          

 

             

 

  先简单的说这些吧,之后学到了新的内容在更新博客内容,欢迎批评指正。

相关文章
相关标签/搜索