繫結支付寶首頁和填寫資料繫結頁之間,
需要在填寫頁填寫好手機號,驗證碼等,點選確認繫結後跳回到繫結首頁。並且繫結按鈕變為已繫結按鈕,暫未繫結label變為輸入的支付寶賬號。並且點選已繫結按鈕會跳轉到解綁介面。
整個流程在app上展示為
一、在傳資訊的controller內(即填寫頁的controller內)建立Block:
fillAlipayViewController.h中:
// 建立block
typedef void(^bindAlipayBlock)(NSDictionary *bindDict);
// 監聽返回的繫結狀態
@property (nonatomic, copy) bindAlipayBlock returnBlock;
複製程式碼
-
這裡解釋一下建立語句:
- 我們可以通過關鍵字
typedef
來為block起型別名稱,然後直接通過型別名進行block的建立; void
為返回值;^bindAlipayBlock
為block名稱;NSDictionary *bindDict
為引數。
- 我們可以通過關鍵字
-
因為需要傳兩個值(支付寶號和繫結狀態),所以建立型別是字典,命名也要明確Block是什麼型別:
(NSDictionary *bindDict)
複製程式碼
fillAlipayViewController.m中:
需建立全域性變數:_alipayAccount即為監聽輸入的支付寶賬號全域性變數。支付寶賬號為字串:
{
NSString *_alipayAccount;//支付寶賬號
}
複製程式碼
在輸入完成後點選確認的點選事件中,確定若響應Block例項,則傳出字典,字典內寫相應的鍵值,(即將繫結YES狀態和支付寶賬號傳出去):
if (self.returnBlock){
self.returnBlock(@{@"isBind":@"YES",@"alipayAccount":self->_alipayAccount});
}
複製程式碼
接著下面是返回上一頁繫結首頁語句:
[self.navigationController popViewControllerAnimated:YES];
複製程式碼
二、在接收訊號的controller內(即繫結首頁的controller內):
bindAlipayViewController.m中:
建立對應全域性變數來接收值:
{
BOOL _isBind;//繫結狀態
NSString *_bindAlipayAccount;//繫結的支付寶賬號
}
複製程式碼
跳轉方法的實現中:
- (void)jumpToControllerWithType:(NSString *)type{
if([type intValue]== 1){
ABFillAlipayViewController *vc=[[ABFillAlipayViewController alloc]init];
WS(weakself);
vc.returnBlock = ^(NSDictionary *bindDict) {
NSLog(@"返回了~");
// 繫結狀態判斷
self->_isBind = [bindDict[@"isBind"] isEqualToString:@"YES"]?YES:NO;
// 支付寶賬號賦值
self->_bindAlipayAccount = bindDict[@"alipayAccount"];
// 重新整理tableView中資料
[weakself.tableView reloadData];
};
[self.navigationController pushViewController:vc animated:YES];
}else if([type intValue]== 2){
[self.navigationController pushViewController:[[ABRemoveBindAlipayViewController alloc]init] animated:YES];
}
}
複製程式碼
_isBind做判斷,等於字串@“YES”的時候為YES,否則NO。
_bindalipayAccount就等於字典傳過來的值。
因為繫結首頁使用tableView畫的,所以在cell內容中判斷,若繫結成功,則做相應改變賦值:
if (_isBind == YES) {
// 繫結按鈕隱藏,顯示已繫結按鈕
cell.bindButton.hidden = YES;
cell.boundButton.hidden = NO;
// 顯示支付寶賬號
cell.subLabel.text = _bindPhoneNumber;
}else{
// 繫結按鈕顯示,隱藏已繫結按鈕
cell.bindButton.hidden = NO;
cell.boundButton.hidden = YES;
// 顯示“暫未繫結賬號”
cell.subLabel.text = @“暫未繫結賬號”;
}
複製程式碼
作者介紹
- 李鴻:廣州蘆葦科技 APP 團隊 iOS 開發工程師
內推資訊
- 我們正在招募小夥伴,有興趣的小夥伴可以把簡歷發到 app@talkmoney.cn,備註:來自掘金社群
- 詳情可以戳這裡--> 廣州蘆葦資訊科技