我有两个方法在我的UITableViewController
类。
[self itemProcessor]; //First Method
[self listAllItems]; //Second Method
默认情况下,第一个方法将从我的viewDidLoad
中调用,cellForRowAtIndexPath
将根据我的第一个方法的查询填充。我在viewDidLoad
中以编程方式创建了UISwitch
,如下所示
UISwitch *barSwitch = [[UISwitch alloc] init];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:barSwitch];
[barSwitch addTarget:self action:@selector(setState:) forControlEvents:UIControlEventValueChanged]; //To track switch state.
- (void)setState:(id)sender
{
BOOL state = [sender isOn];
NSString *rez = state == YES ? @"YES" : @"NO";
NSLog(@"state is %@",rez);
}
当开关关闭时,我应该调用secondMethod([self listAllItems];
)。我在viewDidLoad
中初始化了所有数组。当我在viewDidLoad
内以编程方式创建开关时,如何根据状态变化调用两个不同的查询?
有一个NSMutableArray,你将首先在viewDidLoad中使用它,然后在setState函数中更新该数组并调用tableView.reloadData()
- (void)setState:(id)sender
{
BOOL state = [sender isOn];
NSString *rez = state == YES ? @"YES" : @"NO";
NSLog(@"state is %@",rez);
if (state == YES) {
//
}else{
// myArray is declared in the .h file
myArray = [NSMutableArray arrayWithObjects:
@"str1", @"str2",
@"etc", nil];
[self.tableView reloadData];
}
}