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 回答