0

私のコードでは、これを作成しました

#import <UIKit/UIKit.h>

@interface ViewControllerTable : UIViewController <UITableViewDelegate, UITableViewDataSource>
@property (weak, nonatomic) IBOutlet UITableView *myTableView;
@property (strong, nonatomic) NSString *plcVar;
@end

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
listaPlacas *placas = [[listaPlacas alloc]init];
[self.navigationController pushViewController:placas animated:YES];
}

しかし、他のビューでは:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
for (UITableViewCell *cell in [tableView visibleCells]) {
    cell.accessoryType = UITableViewCellAccessoryNone;
}
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
NSString *placaVar = cell.textLabel.text;
ViewControllerTable *VCT = [[ViewControllerTable alloc]init];

VCT.plcVar = [[NSString alloc]init];
VCT.plcVar = placaVar;
}

戻るボタンをクリックすると、変数 plcVar の値が空になります。

4

1 に答える 1

0

「他のビュー」は、最初のViewControllerからプッシュするviewControllerであり、otherViewControllerからfirstViewControllerにプロパティを設定しようとしていると想定しています。

次に、ここであなたが間違っているところです:

  ViewControllerTable *VCT = [[ViewControllerTable alloc]init];

実際には、プッシュ元の VCT への参照が必要な場合に、VCT の新しいインスタンスを作成しています。

これは、ナビゲーションコントローラーを介して取得できます...

 NSArray* viewControllers = [self.navigationController viewControllers];
 ViewControllerTable* VCT = [viewControllers objectAtIndex:
                                    [ viewControllers count]-2];
于 2013-05-06T16:59:21.090 に答える