I have a UIViewController action that, when called, creates (totally in code) a UITableView with may 2 or 3 rows (nothing fancy), with a header and a footer, and make 2 or 3 simple UILabels in those. This UITableView is then added as a subview of the main view on active UIViewController. It takes about 3 seconds on the simulator for this action to execute and actually show this UITableView.
Is this normal?
No, that is definitely not normal. You need to isolate exactly what is taking up all that time. One pretty simple way to do that is sprinkle NSLog calls in various places in your code, so you can see what’s getting called when. That’s probably good enough to get you started.
Eventually you probably want some more sophisticated timing code that you can use to profile things. I use a variation of this code for that.