最近研究了一下 block 有些不会 想请教一下 大神

西湖听雨1990 发布于 2016/05/30 20:57
阅读 231
收藏 0
iOS

我也是想做一个比较简单的联系人的demo 来理解一下block   但是我在传模型的进候就出现了bug

viewcontroller上面放有一个tableview是负责展示 联系人数据的   maincontroller是添加联系人的 导航栏上面有一个保存按钮  保存用的   

现在按保存之后 返回到主界面  但数据没有跟着一起返回去  自己对block还欠理解和应用  哪位大神有闲暇时间帮看一下  小弟感激不尽!

这个是框架结构


先贴 model里面的数据

Students.h

#import <Foundation/Foundation.h>

@interface Students : NSObject

@property (nonatomic, copy) NSString * name;

@property (nonatomic, copy) NSString * age;

+ (instancetype)tudentsWithName:(NSString *)name Age:(NSString *)age;

@end

Students.m

#import "Students.h"

@implementation Students

+ (instancetype)tudentsWithName:(NSString *)name Age:(NSString *)age{

    return [self tudentsWithName:name Age:age];

}

@end

主界面 是  viewcontroller放着一个tableview

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@end

ViewController.m

#import "Students.h"

#import "MainController.h"

#import "AppDelegate.h"

@interface ViewController ()<UITableViewDelegate,UITableViewDataSource>

@property (nonatomic, strong)UITableView * tableView;

@property (nonatomic, strong)NSMutableArray * array;

@end

@implementation ViewController

- (void)viewDidLoad {

    [super viewDidLoad];

   

    self.tableView = [[UITableView alloc]initWithFrame:[UIScreen mainScreen].bounds style:UITableViewStylePlain];

    self.tableView.delegate =self;

    self.tableView.dataSource = self;

    

    [self.view addSubview:self.tableView];

    

    self.array = [NSMutableArray array];

    

    

    

}

- (void)viewWillAppear:(BOOL)animated{

    [self.array removeAllObjects];

    

    AppDelegate * app = [UIApplication sharedApplication].delegate;

    

    FMDatabase * db = app.db;

    

    BOOL b =[db open];

    

    if (!b) {

        NSLog(@"打开失败");

    }else{

    

        FMResultSet * rest = [db executeQuery:@"select *from Up"];

    

        while ([rest next]) {

            Students * s = [[Students alloc]init];

            

            NSString * name = [rest stringForColumn:@"name"];

            NSString * age = [rest stringForColumn:@"age"];

            

            s.name = name;

            s.age = age;

            

            [self.array addObject:s];

        }

    

    }

}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{

    return 1;

}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

    

    return self.array.count;

}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{

    static NSString * cellID = @"cell";

    

    Students * ss = self.array[indexPath.row];

    

    UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:cellID];

    if (cell == nil) {

        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellID];

    }

    

    

    

    cell.textLabel.text = ss.name;

    

    cell.detailTextLabel.text = ss.age;

    

  

    return cell;

    

}

MainController.h

#import <UIKit/UIKit.h>

@class Students;

typedef void(^returnNsarrayBlock)(Students *);

@interface MainController : UIViewController

//模型对象

@property (nonatomic, strong)Students * student;

@property (nonatomic, strong)returnNsarrayBlock returnBlock;

- (void)returnBlockNsarray:(returnNsarrayBlock)block;

@end

MainController.m

#import "MainController.h"

#import "AppDelegate.h"

#import "Students.h"

#import "ViewController.h"

#import "FMDatabase.h"

@interface MainController ()

@property (weak, nonatomic) IBOutlet UITextField *showName;

@property (weak, nonatomic) IBOutlet UITextField *showAge;

@end

@implementation MainController

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view.

}

- (void)returnBlockNsarray:(returnNsarrayBlock)block{

    self.returnBlock = block;

}

- (IBAction)savingData:(id)sender {

       Students * stu = [Students tudentsWithName:_showName.text Age:_showAge.text];

    if (_returnBlock) {

                _returnBlock(stu);

    }

      [self.navigationController popViewControllerAnimated:YES];

}



加载中
0
首席撸肾虚
首席撸肾虚
:joy::joy:返回的时候你在viewcontroller的viewwillappear打个断点,看看数据重新加载了没
0
Malala
Malala

你回调block了吗。。。

返回顶部
顶部