博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iphone开发我的新浪微博客户端-用户登录账号添加篇(1.5)
阅读量:4994 次
发布时间:2019-06-12

本文共 3810 字,大约阅读时间需要 12 分钟。

2011052913065718.png
     本篇将在上一篇的基础上完成账号的添加的功能,这个功能都相对比较简单看上(图4),点击添加按钮的时候出现一个弹出对话框,这个对话框的实现我们已经在前面的()和()这两篇博客中已经讲过弹出窗组件的定义和使用了,这里的实现依旧是基于自定义组件UIDialogWindow。
     一、这个功能其实除了弹出提示窗口没有任何其他需要多做的功能,因为当点击弹出窗口的开始按钮进行账号添加的时候其实就是调用前面的()中用户授权的功能页面了没有任何区别了,所以这个功能就是弹出提示窗口了,弹出窗口当然是用前面自定义组件UIDialogWindow实现了,按照UIDialogWindow的用法先新建名为ConfirmViewController的UIViewController subclass类型的类文件,新进的时候记得勾上With XIB user interface选项。
     二、打开上一步新建的ConfirmViewController.h文件,声明一个UITextView用来显示文字和两个UIButton按钮(开始按钮和取消按钮),delegate和onClick就不用说了,前面提到好几次了。还有开始按钮事件和取消按钮事件。具体代码如下:
 
#import
<
UIKit
/
UIKit.h
>
#import
"
Global.h
"
@interface
ConfirmViewController : UIViewController {
id
delegate
;
SEL onClick;
IBOutlet UITextView
*
textView;
IBOutlet UIButton
*
startBtn;
IBOutlet UIButton
*
cancelBtn;
}
@property (nonatomic,retain)IBOutlet UITextView
*
textView;
@property (nonatomic,retain)IBOutlet UIButton
*
startBtn;
@property (nonatomic,retain)IBOutlet UIButton
*
cancelBtn;
-
(
void
)setDelegate:(
id
)aDelegate onClick:(SEL)aOnClick;
-
(IBAction)startAuth:(
id
)sender;
-
(IBAction)cancelAuth:(
id
)sender;
@end
     三、双击ConfirmViewController.xib文件,在IB中打开从Library中拖相应的组件到View上并且设置相应的属性,还需要适当的设置view的尺寸大小以及view背景透明,具体如下图:
2011060618574017.jpg
完成布局后还需要完成相应的连接工作了,具体如下图:
2011060618591139.jpg
     四、完成ConfirmViewController.xib设计后打开ConfirmViewController.m完成如下代码:
 
-
(
void
)setDelegate:(
id
)aDelegate onClick:(SEL)aOnClick
{
delegate
=
aDelegate;
onClick
=
aOnClick;
}
-
(IBAction)startAuth:(
id
)sender
{
if
(
delegate
) {
[
delegate
performSelector:onClick withObject:
@"
start
"
] ;
}
}
-
(IBAction)cancelAuth:(
id
)sender
{
if
(
delegate
) {
[
delegate
performSelector:onClick withObject:
@"
cancel
"
] ;
}
}
-
(
void
)viewDidLoad {
[super viewDidLoad];
textView.font
=
[UIFont systemFontOfSize:
15
];
[startBtn setBackgroundImage:[[Global pngWithPath:
@"
btn_bg
"
] stretchableImageWithLeftCapWidth:
12.0
topCapHeight:
14.0
] forState:UIControlStateNormal];
[startBtn setBackgroundImage:[[Global pngWithPath:
@"
btn_h_bg
"
] stretchableImageWithLeftCapWidth:
12.0
topCapHeight:
14.0
] forState:UIControlStateHighlighted];
[cancelBtn setBackgroundImage:[[Global pngWithPath:
@"
btn_bg
"
] stretchableImageWithLeftCapWidth:
12.0
topCapHeight:
14.0
] forState:UIControlStateNormal];
[cancelBtn setBackgroundImage:[[Global pngWithPath:
@"
btn_h_bg
"
] stretchableImageWithLeftCapWidth:
12.0
topCapHeight:
14.0
] forState:UIControlStateHighlighted];
}
     五、接下来就是在LoginViewController调用ConfirmViewController进行显示,首先在LoginViewController.h添加声明ConfirmViewController。
     六、打开LoginViewController.m文件,添加-(void)btnBarOnClick:(NSNumber *)index方法,回顾一下上一篇我们给selectViewController设置了一个onClick事件(
...onClick:@selector(btnBarOnClick:)),这个事件就是当用户点击selectViewController上的添加、切换、删除三个按钮时执行的事件,所以这里我们需要添加这个方法,代码如下:
 
-
(
void
)btnBarOnClick:(NSNumber
*
)index
{
//
点击添加按钮
if
([index intValue]
==
0
) {
[self showConfirm];
}
//
点击切换按钮
else
if
([index intValue]
==
1
) {
[self showUserList];
}
//
点击删除按钮
else
if
([index intValue]
==
2
) {
[self showDelConfirm];
}
}
     七、看上面的代码中当index等于0的时候就是点击了添加按钮,这个时候调用showConfirm方法显示弹出窗口,代码如下:
 
//
显示添加帐号确认对话框
-
(
void
)showConfirm
{
confirmViewController
=
[[ConfirmViewController alloc] init];
dialog
=
[[UIDialogWindow alloc]initWithView:confirmViewController.view];
[confirmViewController setDelegate:self onClick:@selector(confirmAuth:)];
[dialog show];
}
//
确认开始添加帐号,显示授权页面或者点击取消按钮
-
(
void
)confirmAuth:(NSString
*
)txt
{
[[[[UIApplication sharedApplication] windows] objectAtIndex:
0
] makeKeyAndVisible];
[dialog close];
if
(blog
&&
txt
==
@"
start
"
) {
UIViewController
*
controller
=
[blog getOAuthViewController:self];
if
(controller) {
[self presentModalViewController: controller animated: YES];
}
}
else
{
NSLog(
@"
click cancel btn
"
);
}
}
     到此账号添加的功能就算是完成了,非常的简单,其实这功能中需要实现的账号和密码的输入授权,以及账号信息的获取保存到sqlite等功能实现已经在OAuth授权认证篇做好了,所以这里非常的省力。

转载于:https://www.cnblogs.com/hll2008/archive/2011/06/06/2073774.html

你可能感兴趣的文章
HTML5 Canvas玩转酷炫大波浪进度图
查看>>
创建ASP.NET Core MVC应用程序(5)-添加查询功能 & 新字段
查看>>
电话录音系统说明书
查看>>
JVM(1)——IDEA启动分配内存大小及GC日志打印
查看>>
oracle 批量更新之update case when then
查看>>
text3
查看>>
自己写的连击文字特效
查看>>
【Android】eclipse打不开的解决办法和“Jar mismatch! Fix your dependencies”的解决
查看>>
Mysql查询某字段值重复的数据
查看>>
Java 自学笔记-基本语法3setOut()方法设置新的输出流
查看>>
cocos2d-JS 模块 anysdk 概述
查看>>
docker镜像mac下保存路径
查看>>
docker使用 命令
查看>>
关于C#操作INI文件的总结
查看>>
ZeptoLab Code Rush 2015 B. Om Nom and Dark Park
查看>>
ctci1.2
查看>>
[译]RabbitMQ教程C#版 - 路由
查看>>
升级项目到.NET Core 2.0,在Linux上安装Docker,并成功部署
查看>>
Android:onNewIntent()触发机制及注意事项
查看>>
珠宝公司之感想
查看>>