IOS开发---菜鸟学习之路--(四)-登陆界面

简介: 本篇的内容其实大家 参照橘子的那本开发的书的话  上面讲解的是更详细的 一些实现. 我这边唯一的区别就是 做了网络数据的获取 以及 验证成功后 进行界面的跳转.. 第四篇了 本篇主讲登陆模块 首先先放效果图 图一 图二 图三   首先整体效果如图一所示 2个uilabel 2个textfield  1个Button 按钮 实现功能的话有以下几点 1.

本篇的内容其实大家 参照橘子的那本开发的书的话  上面讲解的是更详细的 一些实现.

我这边唯一的区别就是 做了网络数据的获取 以及 验证成功后 进行界面的跳转..

第四篇了 本篇主讲登陆模块

首先先放效果图

图一

图二

图三

 

首先整体效果如图一所示

2个uilabel

2个textfield 

1个Button 按钮

实现功能的话有以下几点

1.其中输入账号后点击 NEXT 跳到 密码框.

2.点击密码输入框 显示DONE 点击done的话 直接进行登陆验证

3.点击背景 将 键盘隐藏

4.点击 登陆按钮 进行登陆 验证 

 

首先先新建一个项目.如下图,选择单一视图项目

然后 将对应的控件拖拽到对应的位置.并修改文字描述

排成图一的样子

控件的细节属性我就不做介绍了,选择对应的Textfield控件 分别在 Placeholder中输入"请输入账号" 和"请输入密码" 该属性就是 在文本输入框没有输入内容时显示的数据

完成后的效果如下

还有个两个属性分别是return key 和Secure  

修改return key的话就是修改 键盘上的结束键.这个大家可以修改下看看就知道了

然后是Secure属性.该属性就是常见的密码选项.选择了后 输入的内容就会显示为****** 所以在密码的Textfield  的属性中需要选择该属性

 

.xib文件暂时就修改这么多了. 

然后是.h文件 .还是一样的 直接上代码

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
{
    UIButton *loginButton;
    UITextField *pwdTextField;
    UITextField *uidTextField;
}
@property(nonatomic,retain) IBOutlet UIButton *loginButton;
@property(nonatomic,retain) IBOutlet UITextField *uidTextField;
@property(nonatomic,retain) IBOutlet UITextField *pwdTextField;

-(IBAction)loginButtonPressed:(id)sender;
-(IBAction)backgroundTap:(id)sender;
-(IBAction)uidDidEndOnExit:(id)sender;
-(void)initNav:(NSString *)pid;
@end

这边我分别定义了三个属性和4个方法 

loginButton  pwdTextField  uidTextField  

这三个就分别对应着我们 的 登陆按钮 . 密码输入框和账号输入框三个稍后会讲怎么样形成关联

 

然后是4个方法分别用来处理  登陆按钮点击事件, 背景点击事件 , 账号输入完成事件,以及登陆成功后界面切换事件  initNav

 

然后回到XIB文件

按住CTRL键同时左键点击 然后移动鼠标,会出现一条蓝色的线. 将蓝色的线连接到 账号输入框上

便会出现刚刚在.H文件中的属性.然后选择与之相对应的 属性 ,就完成了连接了(这边是QQ截图的  有点暗可能看步清楚.不过大家试下就知道了)

然后用同样的方法 分别连接 密码输入框和按钮. 就完成了连接

 

接下来我们选择 账号输入框 在右边属性栏选择事件 

选择Did End on Exit 点击右边的小圆圈 同样的拉动话,会出现一条蓝线,然后 拖拽到左边的 

然后选择uidDidEndOnExit事件,

用同样的方法 分别将密码输入 的Did End on Exit事件连接到 loginButtonPressed

登陆按钮的Touch up inside 事件连接到loginButtonPressed

这样的话 我们就将 对应的事件绑定到对应的控件上面了 

最后还有一个点击背景的事件这边有点复杂

首先需要选择 背景

然后找到属性中的class 将其修改为UIControl  否则的话 他是没有对应的点击事件的

然后同样的 选择 tuochdown 事件 连接到 

backgroundTap 事件上去

 

最后进入.m文件实现具体的 操作

好了直接上代码

//点击背景隐藏输入框
-(IBAction)backgroundTap:(id)sender
{
    [pwdTextField resignFirstResponder];
    [uidTextField resignFirstResponder];
    
}
-(IBAction)uidDidEndOnExit:(id)sender{
    [pwdTextField  becomeFirstResponder];
}

这个方法 分别是 移除对应的焦点,以及使某个控件成为焦点 ..就实现了 点击背景 .隐藏键盘 以及点击NEXT 跳转到 密码输入框的功能

 

然后就是我们的重点了 

longinbutton点击事件

-(void)loginButtonPressed:(id)sender{
    GetWebInfo *getwebinfo=[GetWebInfo alloc];
    NSString *myparameters=[[NSString alloc] initWithString:[NSString stringWithFormat:@"&Method=Login&uid=%@&pwd=%@",uidTextField.text,pwdTextField.text]];
    getwebinfo.parameters=myparameters;
    NSString *webReturnMessage=[getwebinfo dogetWebInfo];
    NSData* jsonData=[webReturnMessage dataUsingEncoding:NSUTF8StringEncoding];
    NSArray *keys =   [NSJSONSerialization
                       JSONObjectWithData:jsonData
                       options:NSJSONReadingMutableContainers
                       error:nil];
    NSString *result=[keys valueForKey:@"Result"];
    if([result isEqual:@"False"])
    {
        UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"登陆失败" message:@"密码错误或者网络连接失败" delegate:self
                                            cancelButtonTitle:@"确定" otherButtonTitles: nil];
        [alert show];
    }
    else{

        [self initNav:[[keys valueForKey:@"Data"] valueForKey:@"ID"]];
    
    }
 }

首先是利用我们前两篇建的GETWEBINFO 类来获取数据

然后判断是否登录成功

如果登录成功就调用initNav方法 并传递数据过去.否则就提示密码输入错误

 

最后要讲的就是 initNav 方法了 .initNav方法主要就是实现登录后的页面跳转..以前刚学的时候在这里纠结了好久 好了直接上代码吧.

 

这边我们首先要新建两个 UIViewController 分别命名为A和B 吧

-(void)initSmallP:(NSString *)pid
{
    AViewController *aViewController =[[AViewController alloc]initWithNibName:@"AViewController" bundle:nil];
    BViewController *bViewController = [[BViewController alloc]initWithNibName:@"BViewController" bundle:nil] ;
    UINavigationController *aNavController=[[UINavigationController alloc]initWithRootViewController:aViewController];
  UINavigationController
*bNavController=[[UINavigationController alloc] initWithRootViewController:bViewController];
  UITabBarController
*tabController=[[UITabBarController alloc] init];
   [tabController setViewControllers:[NSMutableArray arrayWithObjects:aNavController,bNavController,nil]];
  AppDelegate
* app = (AppDelegate*)[[UIApplication sharedApplication] delegate] ;
   [app.window setRootViewController:tabController];
}

 

然后就完成了 

代码的意思呢.就是我们首先 实例化两个  视图,然后 创建两个导航控制器.

最后添加到 一个tabbarcontroller里面

最后将程序的 rootviewcontroller 设置成tabbarcontroller 就完成了就完成了.

因为手头没有资源.所以就把以前做好的登陆后的效果图贴在下面了

不过我们接下来也要实现以下的效果  

接下来的内容主要是围绕着UITableView 来讲解的  

大家如果熟练的掌握了 UITABLEVIEW的话 基本上就能完成一个简单的基本项目了

 

PS:同样的再次声明,本文为本人随意所写(看着肯定感觉怪怪的乱七八糟的..非常不好意思对不起观众了.)

另外如果有错请莫怪楼主误人子弟..也请及时指出,好让本人修改..

 

 

 

目录
相关文章
|
2月前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
22天前
|
iOS开发 开发者 MacOS
深入探索iOS开发中的SwiftUI框架
【10月更文挑战第21天】 本文将带领读者深入了解Apple最新推出的SwiftUI框架,这一革命性的用户界面构建工具为iOS开发者提供了一种声明式、高效且直观的方式来创建复杂的用户界面。通过分析SwiftUI的核心概念、主要特性以及在实际项目中的应用示例,我们将展示如何利用SwiftUI简化UI代码,提高开发效率,并保持应用程序的高性能和响应性。无论你是iOS开发的新手还是有经验的开发者,本文都将为你提供宝贵的见解和实用的指导。
117 66
|
8天前
|
存储 监控 API
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
|
1月前
|
开发框架 Android开发 iOS开发
安卓与iOS开发中的跨平台策略:一次编码,多平台部署
在移动应用开发的广阔天地中,安卓和iOS两大阵营各占一方。随着技术的发展,跨平台开发框架应运而生,它们承诺着“一次编码,到处运行”的便捷。本文将深入探讨跨平台开发的现状、挑战以及未来趋势,同时通过代码示例揭示跨平台工具的实际运用。
|
1月前
|
Java 调度 Android开发
安卓与iOS开发中的线程管理差异解析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自拥有独特的魅力。如同东西方文化的差异,它们在处理多线程任务时也展现出不同的哲学。本文将带你穿梭于这两个平台之间,比较它们在线程管理上的核心理念、实现方式及性能考量,助你成为跨平台的编程高手。
|
2月前
|
存储 前端开发 Swift
探索iOS开发:从新手到专家的旅程
本文将带您领略iOS开发的奇妙之旅,从基础概念的理解到高级技巧的掌握,逐步深入iOS的世界。文章不仅分享技术知识,还鼓励读者在编程之路上保持好奇心和创新精神,实现个人成长与技术突破。
|
2月前
|
安全 IDE Swift
探索iOS开发之旅:从初学者到专家
在这篇文章中,我们将一起踏上iOS开发的旅程,从基础概念的理解到深入掌握核心技术。无论你是编程新手还是希望提升技能的开发者,这里都有你需要的指南和启示。我们将通过实际案例和代码示例,展示如何构建一个功能齐全的iOS应用。准备好了吗?让我们一起开始吧!
|
2月前
|
安全 Swift iOS开发
Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法
本文深入探讨了 Swift 与 UIKit 在 iOS 应用界面开发中的关键技术和实践方法。Swift 以其简洁、高效和类型安全的特点,结合 UIKit 丰富的组件和功能,为开发者提供了强大的工具。文章从 Swift 的语法优势、类型安全、编程模型以及与 UIKit 的集成,到 UIKit 的主要组件和功能,再到构建界面的实践技巧和实际案例分析,全面介绍了如何利用这些技术创建高质量的用户界面。
34 2
|
2月前
|
vr&ar Android开发 iOS开发
安卓与iOS开发中的用户界面设计原则
【10月更文挑战第41天】探索移动应用开发的精髓,本文将深入分析安卓和iOS平台上用户界面设计的核心原则。通过比较两大操作系统的设计哲学,我们将揭示如何打造直观、易用且美观的应用程序界面。无论你是初学者还是资深开发者,这篇文章都将为你提供宝贵的见解和实用的技巧,帮助你在竞争激烈的应用市场中脱颖而出。
|
2月前
|
设计模式 Swift iOS开发
探索iOS开发:从基础到高级,打造你的第一款App
【10月更文挑战第40天】在这个数字时代,掌握移动应用开发已成为许多技术爱好者的梦想。本文将带你走进iOS开发的世界,从最基础的概念出发,逐步深入到高级功能实现,最终指导你完成自己的第一款App。无论你是编程新手还是有志于扩展技能的开发者,这篇文章都将为你提供一条清晰的学习路径。让我们一起开始这段旅程吧!