获取方法之外的价值

时间:2014-01-20 21:11:22

标签: ios return-value didselectrowatindexpath

我有一个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 中分配值,但我想我做错了。因为这不起作用。

任何人都可以帮助我吗?感谢

2 个答案:

答案 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。