注意:ViewController.m文件
// 在第一个页面中,创建一个简单的登录页面,并且添加两个属性
1 #import "ViewController.h"
#import "HomeViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *headerImage;
  // 属性一
@property (weak, nonatomic) IBOutlet UITextField *username;
  // 属性二
@property (weak, nonatomic) IBOutlet UITextField *password;
  // 点击事件
7 - (IBAction)LoginButtonOnClick:(UIButton *)sender; @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad];
} // 此方法用于切换键盘的控制器
- (BOOL)textFieldShouldReturn:(UITextField *)textField{ //如果是第一个文本框 取消第一个 并且给第二个
if (textField == self.username) {
[textField resignFirstResponder];
[self.password becomeFirstResponder];
} //如果是第二个 退出响应
if (textField == self.password) {
[textField resignFirstResponder];
}
return YES;
} // 点击空白部分回收键盘
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
[self.view endEditing:YES];
} - (IBAction)LoginButtonOnClick:(UIButton *)sender {
//新建视图
HomeViewController *hvcl = [[HomeViewController alloc]init];
//此处新建下一个页面,用属性的点语法,将当前获得文本的赋值给第二个页面里面的属性 (注意接受类型)
hvcl.userName = self.username.text;
hvcl.passWord = self.password.text;
    //推送到下一页的动画
[self presentViewController:hvcl animated:YES completion:nil];
hvcl.modalTransitionStyle = UIModalTransitionStyleCoverVertical; }
@end
注意:HomeViewController.h 文件  

在HomeViewController.h 里面我们新建了 两个外部可以访问的属性代码:当我们新建HomeViewController 的对象时候便可以给他里面属性赋值,这样我们便达到了简单的第一个页面传值到第二个页面

#import <UIKit/UIKit.h>

  @interface HomeViewController : UIViewController

  //属性一

  @property (nonatomic,copy)NSString *userName;

  //属性二

  @property (nonatomic,copy)NSString *passWord;

  @end

》  

注意:这是HomeViewController.m文件
#import "HomeViewController.h"
@interface HomeViewController ()
- (IBAction)bankButtonOnClick:(UIButton *)sender;
@property (weak, nonatomic) IBOutlet UILabel *welcomeLabel;
@end @implementation HomeViewController - (void)viewDidLoad {
[super viewDidLoad]; // 字符串拼接
_welcomeLabel.text = [NSString stringWithFormat:@"亲爱的%@,欢迎来到%@章节",self.userName,self.passWord];
}
//
- (IBAction)bankButtonOnClick:(UIButton *)sender {
//销毁当前视图 返回第一视图
[self dismissViewControllerAnimated:YES completion:nil]; }
@end

完整代码:

#import "ViewController.h"
#import "HomeViewController.h"
//遵守协议
@interface ViewController ()<UITextFieldDelegate>
@property (weak, nonatomic) IBOutlet UIImageView *headerImage;
@property (weak, nonatomic) IBOutlet UITextField *username;
@property (weak, nonatomic) IBOutlet UITextField *password;
@property (nonatomic ,strong)UIActivityIndicatorView *activityIndView;
- (IBAction)LoginButtonOnClick:(UIButton *)sender; @end @implementation ViewController - (void)viewDidLoad {
[super viewDidLoad]; // 设置控制器作为文本框的代理代理
self.username.delegate = self;
self.password.delegate = self;
self.headerImage.layer.cornerRadius = ;
self.headerImage.layer.masksToBounds = YES;
NSLog(@"%f %f", _headerImage.frame.size.width, _headerImage.frame.size.height); #pragma make__活动指示器
// 活动指示器的样式
_activityIndView = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
//位置
_activityIndView.bounds = CGRectMake(, , , );
_activityIndView.center = CGPointMake(self.view.center.x, self.view.center.y); //动画停止随及隐藏
_activityIndView.hidesWhenStopped = YES; [self.view addSubview:_activityIndView];
} // 搜索这个方法
- (BOOL)textFieldShouldReturn:(UITextField *)textField{ //如果是第一个文本框 取消第一个 并且给第二个
if (textField == self.username) {
[textField resignFirstResponder];
[self.password becomeFirstResponder];
} //如果是第二个 退出响应
if (textField == self.password) {
[textField resignFirstResponder];
}
return YES;
} // 点击空白部分回收键盘
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
[self.view endEditing:YES];
} - (IBAction)LoginButtonOnClick:(UIButton *)sender { //点击登录按钮 判断文本框类容。
[_activityIndView startAnimating];
//新建视图
HomeViewController *hvcl = [[HomeViewController alloc]init];
//辅助
hvcl.userName = self.username.text;
hvcl.passWord = self.password.text;
[self presentViewController:hvcl animated:YES completion:nil];
hvcl.modalTransitionStyle = UIModalTransitionStyleCoverVertical; }
@end

ViewController.h

#import <UIKit/UIKit.h>

@interface HomeViewController : UIViewController

@property (nonatomic,copy)NSString *userName;
@property (nonatomic,copy)NSString *passWord; @end

HomeViewController.h

#import "HomeViewController.h"

@interface HomeViewController ()

- (IBAction)bankButtonOnClick:(UIButton *)sender;

@property (weak, nonatomic) IBOutlet UILabel *welcomeLabel;

@end

@implementation HomeViewController

- (void)viewDidLoad {
[super viewDidLoad]; // 字符串拼接
_welcomeLabel.text = [NSString stringWithFormat:@"亲爱的%@,欢迎来到%@章节",self.userName,self.passWord];
} - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
} - (IBAction)bankButtonOnClick:(UIButton *)sender { //销毁当前视图 返回第一视图
[self dismissViewControllerAnimated:YES completion:nil]; }
@end

HomeViewController.m

ios初体验< 运用属性传值,登录>的更多相关文章

  1. ios 初体验<真机调试>

    1.很多小伙伴,初学ios后面,都想迫不及待的连接上真机,在真机上调试,本人今天花了许久时间,在网上查了许多资料,一直出现了个问题导致我没法真机调试, 问题一:Your session has exp ...

  2. ios 初体验<UILabel控件>

    创建控件: UILabel *label = [[UILabel alloc]init]; //设置控件大小 label.frame = CGRectMake(50,100,300,40);//分别为 ...

  3. ios 初体验<窗口的创建>

    1. 创建工程,这步很简单,百度下即可,在info.plist 里面 去掉 Main 的 ,便于新手练习ios,创建ios工程后,在AppDelegate.m,里面的方法application 加上几 ...

  4. beego 初体验 - 参数与传值

    beego 支持 restful 风格的 url 传值分为路由传值和表单传值,表单传值可以绑定实体对象 1行 :id/:date 就是路由传值 2.3行是表单传值的路由配置 后台如何接收? 这是con ...

  5. ios 初体验< UISegmentedControl 分段控件>

     小知识:  数组快速创建 @[@"",@"",@"",@"".......],字典快速创建方法:@{@"&q ...

  6. ios 初体验<页面切换>

    本章类容:介绍如何新建一个页面,打开另一个页面 1.在前面中,在工程Appdelegate.m 里面程序第一个走的方法,新建一个窗口,视图,控制器,可视化等, 2.然后在ViewController. ...

  7. ios 初体验<UIButton 控件>

    1.创建UIButton 跟其他方式不同,不是直接alloc,init 创建 用工厂化方式创建 UIButton *sureBtn = [UIButton buttonWithType:UIButto ...

  8. Xamarin.iOS开发初体验

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKwAAAA+CAIAAAA5/WfHAAAJrklEQVR4nO2c/VdTRxrH+wfdU84pW0

  9. iOS AR技术初体验,使用EasyAR示例程序的小白指南

    QQ前两天的传递火炬,是我第一次直接接触到AR.(虽然之前听同事说过,因为他喜欢玩游戏,PS.3DS等等都玩过,这个技术最开始就是从这里出现的).所以感觉很有趣,就想自己也试着搞一下玩玩...下面是我 ...

随机推荐

  1. docker在Centos上的安装

    Centos6安装docker 系统:centos6.5 内核:3.10.107-1(已升级),docker对RHEL/Centos的最低内核支持是2.6.32-431,epel源的docker版本推 ...

  2. 分享一个PHP文件上传类

    该类用于处理文件上传,可以上传一个文件,也可以上传多个文件. 包括的成员属性有: private $path = "./uploads"; //上传文件保存的路径 private ...

  3. 25. leetcode 217. Contains Duplicate

    217. Contains Duplicate Given an array of integers, find if the array contains any duplicates. Your ...

  4. CI 结合 vue.js 的搜索功能模块

    CI 结合 vue.js 的搜索功能模块 最近在有优化公司后台的某个模块的搜索功能优化 原先的是这个样子的,很是单调: 老大给我找个图希望我能弄成这样子: 经过不断修改,最后成了这样子 是不是比以前好 ...

  5. Django 最好的缓存memcached的使用 小记

    嗯,咳咳咳咳咳,这是在win平台上.linux平台上没折腾 首先你要在win上安装 Memcache 下载 :点我下载 里面有x64 和 x86 的.根据自己的系统版本来选择使用   使用命令行: 1 ...

  6. swift3.0 移除当前页面的前一个页面

    用的是以下的跳转方式 self.navigationController?.pushViewController(viewController, animated: true) 在当前页面移除方式 s ...

  7. 【EntityFramework 6.1.3】个人理解与问题记录(2)

    前言 才看完一季动漫,完结撒花,末将于禁,原为曹家世代赴汤蹈火!想必看过的都会知道这个,等一下要不吐槽一下翻拍的真人版,○( ^皿^)っHiahia-,好了快醒醒改办正事儿了,好的,我们接着上一篇文章 ...

  8. Java微信公众平台开发之扫码支付模式一

    官方文档点击查看准备工作:已通过微信认证的公众号,必须通过ICP备案域名(否则会报支付失败)借鉴了很多大神的文章,在此先谢过了大体过程:先扫码(还没有确定实际要支付的金额),这个码是商品的二维码,再生 ...

  9. python之路——面向对象

    面向过程 VS 面向对象 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序的复 ...

  10. MySql的安装与卸载

    首先到官网下载MySQL,点击安装 出现的页面如下,依次安装就好了,安装过程中需要修改的只有编码格式,需要填写的是数据库的密码,MySQL的默认用户名为root,默认端口为3306,端口号最好不要修改 ...