在关闭当前视图时将值推送到下一个视图

时间:2012-10-12 10:48:34

标签: objective-c nsstring uitableview

我有一个带有按钮的UITableViewController,它触发一个模态翻转水平segue动画到另一个UITableViewController。在“翻转”上我有一个简单的完成按钮,如果按下则会解除视图。当解雇视图时,我想在MainTableViewController中设置“test”字符串,具体取决于“test”字符串在FlipsideViewController中的值。我不能让这种联系起作用。在下面发布我的代码:

MainTableViewController.h

#import <UIKit/UIKit.h>

@interface MainTableViewController : UITableViewController

@property NSString *test;

@end

MainTableViewController.m

#import "MainTableViewController.h"

@interface MainTableViewController ()

@end

@implementation MainTableViewController

@synthesize test;

-(void)viewDidAppear:(BOOL)animated{

    NSLog(@"%@", test);

}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{return 1;}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{return 10;}

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

    static NSString *CellIdentifier = @"MainCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    return cell;

}

FlipsideTableViewController.h

#import <UIKit/UIKit.h>

#import "MainTableViewController.h"

@interface FlipsideTableViewController : UITableViewController

- (IBAction)done:(id)sender;

@end

FlipsideTableViewController.m

#import "FlipsideTableViewController.h"

@interface FlipsideTableViewController ()

@end

@implementation FlipsideTableViewController

- (IBAction)done:(id)sender{

    NSString *test = @"Hello!";
    // Push the test string to MainTableViewController

    [self dismissViewControllerAnimated:YES completion:nil];

}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{return 1;}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{return 10;}

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

    static NSString *CellIdentifier = @"FlipsideCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    return cell;

}

@end

1 个答案:

答案 0 :(得分:0)

使用委托进行数据的反向传递

参考simple-delegate-tutorial-for-ios-development链接。

另请参阅basic-delegate-example链接。