Objective-C – 从不同类别访问属性
所以在我的VC1.h
我得到了:
@property (weak, nonatomic) IBOutlet UIButton *monthly;
这连接到一个连接到VC1
类的视图上的button。 如何在另一个类中访问此button的.enabled
属性?
编辑:
我有一个类连接到一个tableview。 当在tableview中select一个特定的行时,我想在我的主类中禁用一个button。 我只需要知道如何获得button的当前状态并在另一个类中禁用它。
从button的IBaction:
- (IBAction)monthly:(id)sender { [monthly setSelected:YES]; yearly.enabled = YES; if([monthly isSelected]) { NSLog(@"monthly ON"); [yearly setSelected:NO]; monthly.enabled = NO; _dateSpecifiedYearButton.hidden = TRUE; _dateSpecifiedYearButton.enabled = NO; _dateSpecifiedButton.hidden = FALSE; _dateSpecifiedButton.enabled = YES; } }
Tableview.m:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [popoverSpending dismissPopoverAnimated:YES]; UITableViewCell *cell = (UITableViewCell *)[tableView cellForRowAtIndexPath:indexPath]; if([self.delegate respondsToSelector:@selector(spendingButtonText:)]) { [self.delegate spendingButtonText:cell.textLabel.text]; } if (indexPath.row == 2) { NSLog(@"2"); ViewController *vc = [[ViewController alloc] init]; if (vc.monthly.enabled) { vc.monthly.enabled = NO; vc.yearly.enabled = NO; } } [self dismissViewControllerAnimated:YES completion:nil]; }
所以上面是代码的这个问题的重要部分。
VC1 *vc = [[VC1 alloc] init];//Allocate VC1 in appDelegate, if you allocate VC1 in VC2, then it allocates new instance. AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate]; if (app.vc.monthly.enabled)//chk button state { }