我正在为看似如此简单的事情而苦苦挣扎:将数据从模态视图传递给其父级。我已经尝试过无数种方式,令我惊讶的是网上没有太多东西,似乎没有什么能比得上我想做的事情。我正在使用故事板,大多数例子都没有使用seques / storyboards。
如果有人可能为我提供一些示例代码,我会非常感激!
我有一个带有自定义单元格的静态表视图控制器。在细胞内我有一个标签。我想点击当前的单元格视图,其中包含textview。在文本视图中键入数据,然后点击保存/完成按钮以关闭模态视图,并将该数据显示在我单元格中的UILabel上。
我知道这听起来很简单,这里有很多问题,但这件事没什么。一些示例代码将非常受欢迎。我完全坚持构建我的应用程序,直到我得到它才能继续下去!
答案 0 :(得分:1)
您可以尝试NSUserDefaults来存储textview中的数据,然后将其读回标签。
编辑:如果你不想使用NSUserDefaults,因为它不是“正确的”方式(但很容易),你可以试试这个:
在tableViewController.h中创建一个NSString:
#import <UIKit/UIKit.h>
@interface TestTableViewController : UITableViewController
@property (nonatomic, strong) NSString *string;
@end
在包含textView的viewController.h中添加以下内容:
- (IBAction)doneButton;
@property (weak, nonatomic) IBOutlet UITextView *textView;
在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];}
然后返回你的tableViewController.m显示你单元格的输入数据(你不需要使用标签):
- (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;}
不要忘记将storyboard ID设置为storyViewController的storyboard上的身份检查器!!