页面跳转 和虚拟键盘的自动隐藏
前提:起码要有两个视图控制器。
注意事项:
设置跳转的动画效果
UITextField输入时,虚拟键盘的位置设置(整体布局向上移动,虚拟键盘的自动隐藏)
实现的功能:
A:在第一个页面跳转到第二个页面,然后第二个页面点击按钮,进行返回
B:在第一个页面有一个text控件,点击一个按钮,传递到第二个页面,然后显示到第二个
页面的label上面:
效果展示:
步骤:
1.新建两个类,然后勾选xib,在AppDelegate的实现文件把其中的一个视图加载进去
//新建一个视图控制器MainViewController *myView = [[MainViewController alloc]init];//让新建的视图控制器加入根类的视图中self.window.rootViewController = myView;
2.构建布局,定义方法:
头文件代码如下:
#import <UIKit/UIKit.h>
#import "DetailViewController.h"
@interface MainViewController : UIViewController<UITextFieldDelegate>
{//把2页面声明为成员变量,便于本类的多个方法的调用。DetailViewController *dail;
}
//点击是页面跳转
- (IBAction)enter:(id)sender;
//点击时把输入的文字传递过去,在2页面显示
- (IBAction)Image:(id)sender;
//文本控件
@property (strong, nonatomic) IBOutlet UITextField *Sent;@end
3.在实现文件中,方法的实现代码如下:
- (IBAction)enter:(id)sender {//0,默认。 1. 翻转 2.淡化 3.翻页dail.modalTransitionStyle = 2;//跳转操作[self presentViewController:dail animated:YES completion:nil];}- (IBAction)Image:(id)sender {//跳转并发送文本[self presentViewController:dail animated:YES completion:nil];dail.Get.text = self.Sent.text;
}
4.2页面的头文件代码如下:
#import <UIKit/UIKit.h>@interface DetailViewController : UIViewController
//点击后,返回
- (IBAction)Return:(id)sender;
//用来接受传递过来的文本:
@property (strong, nonatomic) IBOutlet UILabel *Get;@end2页面的实现文件按代码如下:(部分方法实现代码)- (IBAction)Return:(id)sender {// 点击后进行返回操作[self dismissViewControllerAnimated:YES completion:nil];
}
解决问题1:
如果文本框在一个页面的中间,我们输入的时候,虚拟键盘就把文本框给掩盖住了。我们可以
把界面集体上移,
前提:首先我们要遵守UITextFieldDelegate的协议,调用里面的成员方法:
代码实现:
- (void)textFieldDidBeginEditing:(UITextField *)textField{//加一个动画的效果:隔一秒钟让view上移,因为键盘的出现是上移的,如果你的view之间蹦到//指定的坐标,中间会有一个空缺;[UIView animateWithDuration:1 animations:^{//让页面的Y坐标变为-260.就做了向上移动操作。self.view.frame = CGRectMake(0, -260, self.view.frame.size.width, self.view.frame.size.height);}];}
解决问题2:
如果我们输入完了,需要点击按钮进行跳转,发现现在的按钮已经被虚拟键盘掩盖了
怎么样才能鼠标点击空白处,虚拟键盘就会自动的隐藏呢:这时候就要重写uiView的方法:
以让我们输入结束的时候,让输入框取消第一响应者。从而让键盘隐藏:
前提:
设置TextField的代理对象为当前类对象:
代码如下:
- (void)viewDidLoad
{[super viewDidLoad];dail = [[DetailViewController alloc]init];//设置UITextField的代理为当前类对象self.Sent.delegate = self;// Do any additional setup after loading the view from its nib.
}
虚拟键盘自动隐藏的代码如下:
代码如下:
//触摸时间:重写系统的方法:点击空白处,虚拟键盘消失
//让整个文本输入框取消第一响应者,从而让所有控件的键盘隐藏
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{//NSLog(@"touch");[self.Sent resignFirstResponder];
}
页面跳转 和虚拟键盘的自动隐藏相关推荐
- HTML5页面跳转等待,页面跳转--等待5秒钟后自动跳转到某个页面
这部分可以结合上面的jsp登录,当登录成功后,提示登录成功,然后等待几秒钟,然后跳转到主界面 登陆成功,欢迎光临! 5秒钟后自动跳转,如果不跳转,请点击下面链接 // Place this in th ...
- 重新想象 Windows 8 Store Apps (49) - 输入: 获取输入设备信息, 虚拟键盘, Tab 导航, Pointer, Tap, Drag, Drop...
重新想象 Windows 8 Store Apps (49) - 输入: 获取输入设备信息, 虚拟键盘, Tab 导航, Pointer, Tap, Drag, Drop 原文:重新想象 Window ...
- 弹出Windows10的虚拟键盘总结
由于公司的项目软件一直都在Windows的平板电脑上运行,所以当用户点击了输入框之类的控件时,就要在代码中主动让Windows的虚拟键盘启动并显示出来.这个功能分了几步的开发过程,现在来总结一下. 项 ...
- Delphi D10 StringGrid安卓下虚拟键盘的使用
需求 一个项目,在安卓下使用Grid对数据的处理更为直观与方便,所以选择了StringGrid,起初绑定数据,设置数据内容的增.删.保存等非常方便,不用一行代码搞定.问题出在1.怎么让某个单元格输入完 ...
- Qt5.13.0虚拟键盘 使用文档说明及函数说明 (一)构建 build
首先之前的工作都是为了想验证虚拟键盘的使用,才有了之前编译x11 .arm等qt的步骤. 在到这之前的构建环境,我说认真的,真的烦的要死,每次构建用的时间又多,配置完了编译会出一大堆error,加上公 ...
- IOS实现点击软键盘的Next/Return按钮或者空白处后自动隐藏键盘
在开发IOS过程中,经常需要用到TextField控件.光标一旦定位到该控件,软键盘就会自动开启,用户能够在其中通过软键盘进行输入.但是,若不对软键盘进行其他操作,它是不会自动关闭的.这样就很有可能降 ...
- html5 5s自动返回键,关于HTML5页面与手机虚拟键盘的回车的处理
要支持手机虚拟键盘的回车键能触发当前页面的提交效果,需要满足一下几点 一,存在form元素以及submit类型的input子元素 二,需要将form的onsubmit属性绑定包含返回布尔值的方法 关于 ...
- Android按键响应的几种方式、安卓页面的跳转、页面跳转传参、页面自动跳转、Activity(页面)的生命周期
按键响应的第一种方式: 在XML文件里面设置按键的onClick绑定函数.就像下面的代码,给Button设置onClick属性,在按键被按下的时候,会调用java文件里面的onClickbtton1这 ...
- html页面跳转IP,JS获取访客IP进行自动跳转
因业务需要进行地区判断跳转指定站点,下面是我个人实现的办法,分享给大家,仅供参考,切勿做非法用途 第一步,获取IP并判断归属地 直接使用搜狐的IP库查询接口 返回的地址是: var returnCit ...
最新文章
- hdu5701-中位数计数
- 卡常神器——register 与 快速读入输出
- dev-c++官网位置和源码/库位置
- windows10环境下安装Anaconda环境
- 良好的代码编写风格(二十五条)
- Pensieve:AI带来的更流畅的高质量观看体验
- 评分系统 java_C自动评分系统
- 斑马打印机怎么打印二维码_万能打印机厂家是怎么改良打印机的?
- java编写一个程序_计算已知长和宽的长方形的周长,请教一下大佬们,我们java留了一个作业,编写程序,定义一个接口Comput,声明计算周长和面积的方法...
- GitHub 简单教程
- NIO中的ByteBuffer读取中文错误的解决方法:MalformedInputException
- 通达信 c语言,通达信if语句用法,通达信公式编写
- android studio 汉化包 美化包
- 微信小程序设置底部导航栏
- 2020-12-30
- Could not import the lzma module
- Ruby On Rails 4 hello world,Ruby On Rails上手
- 集成声网(Agora)SDK踩坑集锦系列
- 简单易用,基于js或vue项目实现一次批量文件下载功能
- 看看人家那物联网系统,那叫一个优雅……