Objective c Can';在cellForRowAtIndexPath中启动时,无法获取UISwitch的状态?

Objective c Can';在cellForRowAtIndexPath中启动时,无法获取UISwitch的状态?,objective-c,uitableview,uiswitch,Objective C,Uitableview,Uiswitch,我启动我的cellForRowAtIndexPath。它出现了,但当我尝试从其他类引用它时,它返回(null)。如果我在viewDidLoad中启动它,它会工作,但需要在UITableView中 AddAlbumViewController: // .h IBOutlet UISwitch *privateSwitch; @property (nonatomic, retain) IBOutlet UISwitch *privateSwitch; // .m @synthesize priva

我启动我的cellForRowAtIndexPath。它出现了,但当我尝试从其他类引用它时,它返回
(null)
。如果我在viewDidLoad中启动它,它会工作,但需要在UITableView中

AddAlbumViewController:

// .h
IBOutlet UISwitch *privateSwitch;
@property (nonatomic, retain) IBOutlet UISwitch *privateSwitch;

// .m
@synthesize privateSwitch;

privateSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(199, 8, 0, 0)];
[privateSwitch addTarget:self action:@selector(switchToggled:) forControlEvents: UIControlEventTouchUpInside];
[cell.contentView addSubview:privateSwitch];
第二视图控制器:

// .m

TableViewAppDelegate *dataCeter = (TableViewAppDelegate *)[[UIApplication sharedApplication] delegate];
AddAlbumViewController *addAlbumViewController = [[AddAlbumViewController alloc] initWithNibName:@"AddAlbum" bundle:[NSBundle mainBundle]];
UIView *tempView = addAlbumViewController.view;

NSLog(@"privateSwitch: %@", addAlbumViewController.privateSwitch);
请帮助,谢谢。

假设此代码:

privateSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(199, 8, 0, 0)];
[privateSwitch addTarget:self action:@selector(switchToggled:) forControlEvents:    UIControlEventTouchUpInside];
[cell.contentView addSubview:privateSwitch];
实际上是在您的tableView:CellForRowatineXpath:中,那么当您试图查看privateSwitch时,该代码可能还没有被调用。(我假设您在尝试登录之前从AddAlbumViewController的新实例中读取了privateSwitch,但您忽略了该代码。)

在SecondViewController中,您正在创建AddAlbumViewController的一个新实例,并从nib加载该视图,但是从您发布的代码来看,您实际上并没有在屏幕上显示它(除非您忽略了它?)


另外,顺便说一句,您声明了一个名为privateSwitch的属性,但没有使用它。

我声明了privateSwitch,因为我需要稍后阅读它。我以后初始化时会使用它吗?此外,SecondView包含一个UINavigationController,其中包含AddAlbum。加载所有内容时会发生此操作。但您在发布的代码中没有使用该属性。也许可以发布更多代码?在另一个问题上,仅仅因为加载了视图并不意味着表中已经填充了单元格。这是两件不同的事情。在tableView中放置日志或断点:cellForRow。。。所以你可以看到它什么时候被调用。此外,可能会发布更多代码,以便人们可以看到您尝试执行的操作的结构。按下按钮时会填充tableView。我想不出更多的代码可以发布了。有很多东西…你确定没有两个AddAlbumViewController实例吗?以及“UIView*tempView=”和您试图记录privateSwitch的行之间发生了多少变化。你实际读取privateSwitch属性的代码在哪里?我没有两个实例。当我记录privateSwitch时,UIView*temp视图之间不会发生任何其他情况。代码位于UINavigationController中的UIBarButtonItem获取的iAction中。