0

我正在为看起来如此简单的事情而苦苦挣扎:将数据从模态视图传递到其父级。我尝试了无数种方法,令我惊讶的是,网上没有太多东西,似乎没有什么能与我想做的事情相匹配。我正在使用故事板,并且大多数示例不使用序列/故事板。

如果有人可以为我提供一些示例代码,我将不胜感激!

我有一个带有自定义单元格的静态表格视图控制器。在单元格内,我有一个标签。我想点击单元格以呈现带有文本视图的模态视图。在文本视图中输入数据,然后点击保存/完成按钮以关闭模式视图并使该数据出现在单元格中的 UILabel 上。

我知道这听起来一定很简单,这里有很多关于它的问题,但没有什么能做这件事。一些示例代码将不胜感激。我完全坚持构建我的应用程序,在我得到这个之前不能再进一步了!

4

1 回答 1

1

You can try NSUserDefaults to store your data from textview and then read them back for the label.

EDIT: If you don't want to use NSUserDefaults as it's not the "right" way (but the easy one) you can try this:

In your tableViewController.h create a NSString:

#import <UIKit/UIKit.h>
@interface TestTableViewController : UITableViewController
@property (nonatomic, strong) NSString *string;
@end

In your viewController.h that contains the textView add these:

- (IBAction)doneButton;
@property (weak, nonatomic) IBOutlet UITextView *textView;

In viewController.m:

- (IBAction)doneButton {
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
TestTableViewController *tvc = (TestTableViewController*)[storyboard instantiateViewControllerWithIdentifier:@"TestTableViewController"];
tvc.string = _textView.text;
[tvc setModalPresentationStyle:UIModalTransitionStyleFlipHorizontal];
[self presentModalViewController:tvc animated:YES];
// ios6 version:
//[self presentViewController:tvc animated:YES completion:nil];}

Then back in your tableViewController.m display the input data to your cell (you don't need to use a label):

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{      
static NSString *CellIdentifier = @"test";
UITableViewCell *cell = [[UITableViewCell alloc] init]; 
if (SYSTEM_VERSION_LESS_THAN(@"6.0")) { 
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; } 
else { 
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 
} 
 // Configure the cell...
cell.textLabel.text = _string;

return cell;}

DON'T forget to set the Storyboard ID to identity inspector on storyboard for your tableViewController!!

于 2012-11-02T23:39:40.230 回答