我有一个int pageNumber设置,如@property (nonatomic, assign) int pageNumber;
,我试图在两个视图控制器之间传递。
我第一次点击tableview中的单元格时会工作,但如果我再次点击一个单元格,则int不会更新。
有什么想法吗?我的代码如下。
LeftMenuViewController.m
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone"
bundle: nil];
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
SoftwareCheckViewController *sc = [[SoftwareCheckViewController alloc] init];
if ([cell.textLabel.text isEqual: @"S:1 R:0"]) {
sc = [mainStoryboard instantiateViewControllerWithIdentifier: @"SoftwareCheckViewController"];
sc.pageNumber = 1;
}
else if ([cell.textLabel.text isEqual: @"S:1 R:1"]) {
sc = [mainStoryboard instantiateViewControllerWithIdentifier: @"SoftwareCheckViewController"];
sc.pageNumber = 2;
}
else if ([cell.textLabel.text isEqual: @"S:1 R:2"]) {
sc = [mainStoryboard instantiateViewControllerWithIdentifier: @"SoftwareCheckViewController"];
sc.pageNumber = 3;
}
[[NSNotificationCenter defaultCenter] postNotificationName:@"pageNumberNotification" object:self];
}
SoftwareCheckViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(pageNumberMethod) name:@"pageNumberNotification" object:nil];
}
- (void)pageNumberMethod{
NSLog(@"pageNumber: %i", pageNumber);
}
答案 0 :(得分:0)
每次点击单元格时都会创建新的视图控制器,但是您没有对它们执行任何操作。如果sc.pageNumber
不是正在侦听通知的控制器,那么设置sc
永远不会有效。
此外,即使您想要一个新的控制器,[[SoftwareCheckViewController alloc] init]
基本上也是一种浪费,因为您之后会立即为sc
指定不同的内容。