0

NavigationControllerにプッシュするUITableViewControllerの文字列変数に値を割り当てようとしています。

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
// now you can use cell.textLabel.text
NSMutableString *v = [[NSMutableString alloc] init];
[v setString:cell.textLabel.text];

DCAArtistViewController *dvController = [[DCAArtistViewController alloc] init];


if ([v isEqual:@"UK"]) {

    dvController.st =@"75";

}

[self.navigationController pushViewController:dvController animated:YES];

私が試してみました

[dvController.st setString:@"75"];

ロードされたビューには、常にnullを表示するNSLogがあります。

 NSLog(@"The st is%@",st);

私は何が間違っているのですか?私が見た例は、このdvController.st =@"75"のようなビューコントローラーのプロパティへの割り当てを示しています。

DCAArtistViewController .h

#import <UIKit/UIKit.h>


@interface DCAArtistViewController : UITableViewController{

NSString *st;
NSMutableArray *aa;

}
@property (nonatomic, retain) NSMutableArray *listOfItemss;
@property (nonatomic, retain) NSString *st;
@property (nonatomic, retain) NSMutableArray *aa;

@end

これは、DCAArtistViewController(ロードされるビュー)の開始です。

@implementation DCAArtistViewController
@synthesize listOfItemss;
@synthesize st;
@synthesize aa;

- (id)initWithStyle:(UITableViewStyle)style
{
self = [super initWithStyle:style];
if (self) {

    aa = [[NSMutableArray alloc] init];
    NSLog(@"The st is%@",st);
    NSLog(@"The self st is%@",st);
4

2 に答える 2

0

私はそれを持っている。ヘッダーファイルには、次の両方が含まれています。

@interface DCAArtistViewController : UITableViewController{
    NSString *st;
}

@property (nonatomic, retain) NSString *st;

これは、技術的には、ローカルで_standという名前の2つの変数を宣言していることを意味しますst_stプロパティ用に生成されたゲッター/セッターによって管理されます)

文字列を設定するときは、内の表記法-stを使用しているため、技術的にはに設定しています。を使用する場合は、印刷しようとしています。.dvController.st =@"75";NSLogst

解決策:インターフェースから削除NSString* stします。プロパティもある場合は必要ありません。内で、またはのいずれかNSLogを使用しますNSLog(@"The st is%@",_st);NSLog(@"The st is%@",self.st);

于 2012-10-23T21:35:08.943 に答える
0

問題は単純です。メソッドにログインstしていますinit。ただし、メソッドが呼び出されるstまでプロパティを設定しません。init

于 2012-10-23T21:34:19.557 に答える