iphone - 处理字符串对象和 View Controller

标签 iphone objective-c cocoa-touch nsmutablearray modalviewcontroller

我正在尝试在 View Controller 之间来回传递字符串,因此例如,一旦我单击第一个 View 中的选项卡栏按钮(+),第二个 View 就会打开(PresentModalViewController)并且它有一个文本 field 。因此,我输入的任何内容都会将其放入字符串中(该字符串是第一个 View 的对象),并且我尝试将该字符串附加到第一个 View 中加载的表格 View 中。

注意:我的字符串对象是这样声明的

View1.h

NSString *string 

@property (copy) NSString *string;

查看1.m

@synthesize string;

在 View 2 中,我像这样传递文本字段值

View2.m

View1 *view1 = [[View1 alloc] initWithNibName:@"View1" bundle:nil];
view1.string = [[NSString alloc] initWithFormat:@"%@", TextField.text];

问题 - 当我在 View2 中 NSLog 这个值时,它会从文本字段中获取该值,但为了让我加载上一个 View ,我需要关闭此 View2。因此,当我尝试访问 View 1 中的同一字符串对象时,一旦此 View2 被关闭。它表示该字符串对象为 null。

问题 - 有人可以告诉我
1. 关闭 View 2后,如何将文本字段值从 View 2获取到 View 1(关闭时是否真的使其所有对象都为空?)
2. 如何将该字符串附加到 NSMutableArray 的最后一个索引?

最佳答案

这是一个非常好的问题,当我开始为 iOS 编写代码时,我也很难弄清楚。基本上,您不需要初始化新的 view1,因为选项卡 Controller 已经在其 viewControllers 属性中保存了 view1 对象。另外,在这种情况下,没有必要分配/初始化字符串。

因此,您需要更改此设置:

View1 *view1 = [[View1 alloc] initWithNibName:@"View1" bundle:nil];
view1.string = [[NSString alloc] initWithFormat:@"%@", TextField.text];

对于这样的事情:

View1 *view1 = [self.tabbarController.viewControllers objectAtIndex:0];
view1.string = textField.text;

或者甚至:

((View1 *)[self.tabbarController.viewControllers objectAtIndex:0]).string = textField.text;

第 2 部分:

How to append that string to the last index of a NSMutableArray?

NSMutableArray *someArray = [[NSMutableArray alloc] init];
[someArray addObject:string];
[someArray addObject:@"anotherString"];

关于iphone - 处理字符串对象和 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8205020/

相关文章:

iphone - iPhone Sim 的 Xcode 4 需要 i386 吗?

iphone - AVAssetExportSession estimatedOutputFileLength 总是返回 0

iphone - iPad 与 Mac 或 PC 之间的 USB 通信

ios - 将搜索栏添加到 UITableView 的顶部

iphone - UIScrollView 中的延迟加载页面

ios - 是否可以弹出到 n - 2 或 n - 3 View ?

ios - 将 UITabBar 定位在顶部

ios - 将 UITouch 管理从 TouchBegan 切换到 UIScrollViewDelegate

iphone - 在 Objective-C 中将 TypeDef 作为参数

ios - 如何在一个 UIViewController 中处理多个 View