我有一個tableview,其中,在第一行中,我試圖最初將一個靜態值添加到detailtextlabel。所以當最初加載tableview時,detailtextlabel會顯示默認值。當我點擊detailtextlabel時,它會切換。我添加了將默認值切換到另一個值的代碼。這工作正常。 這是我的代碼:如何在運行時更改tabbar的選項卡
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
cell = [tableView cellForRowAtIndexPath:indexPath];
switch (indexPath.row) {
case 0:
if ([cell.detailTextLabel.text isEqualToString:@"digital"]) {
cell.detailTextLabel.text = @"analog";
userdefaults = [NSUserDefaults standardUserDefaults];
[userdefaults setObject:@"analog" forKey:@"clock"];
}
else {
cell.detailTextLabel.text = @"digital";
[userdefaults setObject:@"digital" forKey:@"clock"];
}
[userdefaults synchronize];
break;
default:
break;
}
}
但我的問題是當標籤正從數字更改爲模擬,數字視圖控制器,它被添加在主窗口的第一個標籤,應該得到改變,以模擬視頻控制器,當模擬信號轉換爲數字信號時,數字視圖控制器應該被第一個選項卡中的模擬視圖控制器替代。
//在appdidfinish啓動時,我已經完成了這段代碼,但是它並沒有在運行時改變tabbar。
NSString *clockswitch = [[NSUserDefaults standardUserDefaults]objectForKey:@"clock"];
if ([clockswitch isEqualToString:@"digital"]) {
DigitalClockViewController *dig = [[DigitalClockViewController alloc]init];
//self.tabBarController.selectedViewController = [self.tabBarController.viewControllers objectAtIndex:0];
}
else
{
AnalogClockViewController *ana = [[AnalogClockViewController alloc]init];
//self.tabBarController.selectedViewController = [self.tabBarController.ana objectAtIndex:0];
}
你就不能由self.tabBarController.selectedIndex設置活動控制器= digitalClockControllerIndex – Willy