How to set the UITableView Section title programmatically (iPhone/iPad)?

iboutlet, ipad, iphone, storyboard, uitableview

Solution

Once you have connected your UITableView `delegate` and `datasource` to your controller, you could do something like this:

ObjC

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {

    NSString *sectionName;
    switch (section) {
        case 0:
            sectionName = NSLocalizedString(@"mySectionName", @"mySectionName");
            break;
        case 1:
            sectionName = NSLocalizedString(@"myOtherSectionName", @"myOtherSectionName");
            break;
        // ...
        default:
            sectionName = @"";
            break;
    }    
    return sectionName;
}

Swift

func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {

    let sectionName: String
    switch section {
        case 0:
            sectionName = NSLocalizedString("mySectionName", comment: "mySectionName")
        case 1:
            sectionName = NSLocalizedString("myOtherSectionName", comment: "myOtherSectionName")
        // ...
        default:
            sectionName = ""
    }
    return sectionName
}

Problem

I've created a `UITableView` in Interface Builder using `storyboards`. The `UITableView` is setup with `static cells` and a number of different sections. The issue I'm having is that I'm trying to setup my app in several different languages. To do this I need to be able to change the `UITableView` section titles somehow. Please can someone help me out? Ideally I'd like to approach the issue using `IBOutlets` however I suspect this isn't even possible in this case. Any advice and suggestions would be really appreciated.

Original source