0

我正在使用 Xcode 4.3.2 和 iOS 5.1 模拟器,在我的项目中我使用了两个视图控制器:testingViewController 和 detailView。一旦我在 testingViewController 中选择了 tableViewCell,我想在 detailView 中设置 NSString 的值。

为此,我使用了以下代码:

testingViewController.h

testingViewController.h

testingViewController.m

testingViewController.m

详细视图.h

详细视图.h

详细视图.m

详细视图.m

wordName我在控制台和控制台中都得到了空值wordMeaning

有人有解决方案吗?提前致谢!

4

5 回答 5

3

testingViewController如果你在and之间有故事板segue detailView,在你testingViewControllerprepareForSegue:方法中你应该改变线

detailView *dVw = [[detailView alloc] init]; 

detailView *dVw = (detailView *)segue.destinationViewController;

另外,我建议您在detailView.h文件中更改

@property (nonatomic, assign) NSString *YOUR_STRING; 

@property (nonatomic, copy) NSString *YOUR_STRING;
于 2012-07-25T13:58:57.293 回答
1

采用

[[segue destinationViewController] setWordMeaning:meaningString];
[[segue destinationViewController] setWordName:wordTapped];

问题是您正在创建detailView

于 2012-07-25T13:58:42.263 回答
1

我写这个是为了在类之间共享数据。我希望它对你有用。

于 2012-07-25T14:01:14.453 回答
0

将您的 NSStrings 设置为保留属性,而不是分配。此外,当您更改它们的值时,请始终使用

self.property = ...;

为了保留发生。否则,它将被释放,您将获得无效或错误的访问权限。

于 2012-07-25T13:59:58.930 回答
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 属性应该是复制而不是分配,请在您的 detail.h 文件中进行更改

于 2012-07-25T14:01:00.437 回答