我正在使用Xcode 4.3.2& iOS 5.1模拟器,在我的项目中我使用两个View Controllers:testingViewController和detailView。我想在testingViewController中选择tableViewCell后,在detailView中设置NSString的值。
为此,我使用了以下代码:
testingViewController.h
testingViewController.m
detailView.h
detailView.m
我在控制台中获取wordName
和wordMeaning
的空值。
有人有解决方案吗?在此先感谢!
答案 0 :(得分:3)
如果您在testingViewController
和detailView
之间有故事板,请在testingViewController
的{{1}}方法中更改行
prepareForSegue:
到
detailView *dVw = [[detailView alloc] init];
另外,我建议您更改detailView *dVw = (detailView *)segue.destinationViewController;
文件中的
detailView.h
到
@property (nonatomic, assign) NSString *YOUR_STRING;
答案 1 :(得分:1)
使用
[[segue destinationViewController] setWordMeaning:meaningString];
[[segue destinationViewController] setWordName:wordTapped];
问题是您正在创建detailView
答案 2 :(得分:1)
我写了this来在类之间共享数据。我希望它对你有用。
答案 3 :(得分:0)
将NSStrings设置为保留属性,而不是分配。此外,当您更改其值时,请始终使用
self.property = ...;
为了保留发生。否则,它将被释放,您将获得空或访问权限。
答案 4 :(得分:0)
创建自定义初始化方法
declare in .h file
-(id)initWithWordName:(NSString*)myWordName andWordMeaning:(NSString*)myWordMeaning;
and in .m file
-(id)initWithWordName:(NSString*)myWordName andWordMeaning:(NSString*)myWordMeaning
{
self = [super init];
if(self)
{
self.wordName = myWordName;
self.wordMeaning = myWordMeaning;
}
return self;
}
并且还应该复制NSString属性而不是assign,在detail.h文件中进行更改