我有一个ViewController,它有一个TableView,我想从 didSelectRowAtIndexPath 中获取值,这样我就可以传递到另一个视图了。
这是方法:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// That's the string that I want to get the value
NSString *selectRow = [_vinhoArray objectAtIndex:indexPath.row];
stringTest = selectRow;
}
我创建并合成属性 stringTest
@property (nonatomic, strong) NSString *stringTest;
@synthesize stringTest;
从 selectRow 中分配值,但我想我做错了。因为这不起作用。
任何人都可以帮助我吗?感谢
答案 0 :(得分:1)
首先,我会尝试查看您是否通过nslog分配值
NSLog(@"%@", [_vinhoArray objectAtIndex:indexPath.row]);
然后,如果您在日志中获得了某些内容,则可以尝试
self.stringTest = [_vinhoArray objectAtIndex:indexPath.row];
如果要在阵列中存储NSStrings。
试试这个,
在AppDelegate.h中创建你的字符串
@property (nonatomic, retain) NSString *myTitleString;
现在,您想要访问此字符串的任何地方,您需要在顶部包含appDelegate
#import "AppDelegate.h"
然后使用它来访问它
AppDelegate *AppDelegate = [[UIApplication sharedApplication] delegate];
用
分配AppDelegate.MyTitleString = //whatever you are going to assign it with;
在你的其他视图控制器中,你将做同样的事情,在顶部导入appdelegat.h,创建应用程序委托并将其值赋予你的标题
NSString *MyStringInTheDifferentController = AppDelegate.MyTitleString;
答案 1 :(得分:0)
在@synthesize stringTest;
之后插入以下方法:
- (void)setStringTest:(NSString *)stringTest
{
_stringTest = stringTest; // Insert a breakpoint here
/* You should see here what value does stringTest have and also who called this setter. */
}
我认为这是调试的最佳方式,因为您可能会在stringTest
之后立即覆盖tableView:didSelectRowAtIndexPath
属性,而您可能不知道它。
P.S。:如果您不使用 ARC ,则需要更新setter。