IOS开发之获取Storyboard创建的ViewController
来源:互联网 发布:coap协议默认的端口号 编辑:程序博客网 时间:2024/05/01 00:24
前面的两篇博客都是学习有关屏幕适配也就是相对布局的东西,这篇博客中将会学习视图间的切换。视图间的切换我们可以用代码完成或者用storyboard来建立各个视图控制器间的关系。在需要用到代码进行切换时会用代码进行视图间的跳转。下面的东西我们会主要介绍到NavigationController来进行视图间的切换。下面也是和之前一样把代码和storyboard结合起来学习。
下面介绍一下我们要实现的功能和效果: App打开的第一个界面是登陆页面,登陆页面由用户名和密码以及一个登陆按钮构成。当登陆成功时会push到第二个页面,第二个页面有三个按钮,A,B和C, 点击不同的按钮然后会跳转到相应的View。
1.首先我们先用我们的storyboard来拖拽出我们要用的控件,再添加一个NavigationController,下面图一是给我们的主视图添加NavigatinController, 图二是最终效果
2.因为要由登陆状态来判断下面的View是否出现,所以主视图和带有A,B,C三个按钮的视图之间的切换不能用storyboard实现,我们要用代码关联实现。下面是登陆成功后要跳转的模块截图:
3.以上拖拽工作到此结束,下面要实现我们的业务逻辑和关联视图之间的关系,为了关联视图时能找到带有三个按钮的视图,我们需要设置一下该视图的StoryboardID,入下图
4.下面来编写我们的代码,上面我们用到了TextField,我们需要处理键盘的回收事件,所以我们的ViewController要遵守UITextFiledDelegate协议,实现有关键盘的方法
(1)遵守UITextFieldDelegate协议
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController<UITextFieldDelegate>
@end
(2)在ViewController.m中中进行回调注册和实现协议中相应的方法,代码如下:
-(
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的值,由值的情况来实现是否进行页面间的切换。 在页面切换时我们得关联两个页面中的关系。
- (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需要三部
1.获取storyboard: 通过bundle的名获取bundle, 在通过storyborad的名字来获取我们的storyboard;
2.在由storyboard获取storyboardID是myView的View;
3.执行由当前View推向我们获取到的myView;
至此我们的主要代码就编写完成,接下来看一下运行效果吧:
先简单的说这些吧,以后学到了新的内容在更新博客内容,欢迎批评指正。
作者:青玉伏案
出处:http://www.cnblogs.com/ludashi/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
如果文中有什么错误,欢迎指出。以免更多的人被误导。
- IOS开发之获取Storyboard创建的ViewController
- IOS开发之获取Storyboard创建的ViewController
- IOS开发之获取Storyboard创建的ViewController
- iOS获取storyBoard中的viewController
- 小技巧6-iOS 获取和跳转到Storyboard创建的ViewController
- iOS开发之获取当前最顶层的ViewController
- IOS学习之storyBoard的应用,使用performSegueWithIdentifier來切換ViewController
- iOS 获取storyboard创建的视图控制器
- storyboard 获取到关联后面的viewController
- iOS开发之storyboard的小技巧
- [IOS初学]ios 第一篇 storyboard 与viewcontroller的关系
- iOS开发 - 获取当前View最顶层的ViewController
- iOS开发 获取当前视图最顶层的ViewController
- 在Storyboard中获取Viewcontroller
- 代码获取Storyboard中的ViewController
- 从storyBoard中获取viewController
- iOS 获取当前的ViewController
- IOS获取顶层的viewcontroller
- BFS和A*算法分别解决N-数码问题
- oracle服务器无法连接,报错TNS:tns:lost contact
- IE下 iframe子页面document.documentElement报错问题(未指明的错误。)
- Android 各大网络请求库的比较及实战
- poj 2316 SPIN
- IOS开发之获取Storyboard创建的ViewController
- 用matlab 保存带标记图像、图片的方法总结
- 孩子玩叛逆,家长不如以退为进
- Java并发工具包java.util.concurrent用户指南
- 再回首,数据结构——字符串与数组的常见操作(链式存储,包含朴素匹配算法等)
- ARC中Retain Cycle揭秘
- 一步一步学习 Linux 驱动之(Kconfig、Makefile)
- [latex]表格
- Java Web的Struts2的多语种网站的多语言切换实例