UITableView with static cells does not appear

IosUitableviewXcode Storyboard

Ios Problem Overview


I have created a new Xcode project using Storyboards (tab view template). I added a couple of view controllers to my storyboard, and wanted to use a UITableView with static cells for one. I created it, but when I run in the simulator the cells don't appear. I haven't changed anything in the project except for this storyboard file. I am showing screenshots of the storyboard editor and the simulator running. The label shows up, so the view is loading correctly. I set the background color to gray so I can see the talbeview is loading. All cells are set to visible. I changed their style to Basic and edited the label, and added a disclosure indicator, that's all.

simulator xcode

Ios Solutions


Solution 1 - Ios

Don't implement any of the methods below when you use the static table view:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
}

Solution 2 - Ios

As stated on Ray Wenderlich's website (in this post: Beginning Storyboards in iOS 5 Part 2, section "The Add Player Screen at Work" ):

> One more thing about static cells, they only work in > UITableViewController. The Storyboard Editor will let you add them to > a Table View object inside a regular UIViewController, but this won’t > work during runtime. The reason for this is that UITableViewController > provides some extra magic to take care of the data source for the > static cells. Xcode even prevents you from compiling such a project > with the error message: “Illegal Configuration: Static table views are > only valid when embedded in UITableViewController instances”.

Had the same issue but this makes things clear...

Solution 3 - Ios

Do you want to try using the TableViewController rather than the Generic View controller ?

Solution 4 - Ios

You can add a Container View and embed a UITableViewController in that container. Then you can manage your static cells inside the new controller.

Solution 5 - Ios

I was experiencing the same problem, and the fix that worked for me was to present the static UITableViewController subclass using performSegue. Presenting the old way with [[self navigationController] present...] did not result in the static table view properly loading its cells.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionadumView Question on Stackoverflow
Solution 1 - IosJoe YView Answer on Stackoverflow
Solution 2 - IosEeKayView Answer on Stackoverflow
Solution 3 - IosDennis MathewsView Answer on Stackoverflow
Solution 4 - IoszqyView Answer on Stackoverflow
Solution 5 - IosdaveView Answer on Stackoverflow