How to design short game levels

I'm working on this very simple game which involves doing stuff very fast, like tapping the right buttons in a matter of time. The game is supposed to include a number of different levels, with different attributes, and different goals.

I was curious as to how the best way would be to implement different levels. At first I was thinking about having a new subclass of UIViewController and a corresponding xix-file for each level that I would switch to after one level has been completed. But say I have 30+ levels, that's going to be a lot of classes..?

Unless every level in your game has vastly, fundamentally different mechanics, the normal approach would be to implement one gameplay "engine" (as a class or set of classes) that's used for every level, and store the distinguishing features of each level in its own data file (in a format like JSON or XML). You'd parse each level file into some sort of model structure, and use it to drive the mechanism that runs your gameplay.

If there really are no unifying properties between any two of your levels, it may make sense to implement a separate class for each one, but it seems unlikely that this would be the case.