You need to keep a reference to your timer so you can invalidate it when your viewController disappears. Otherwise it will just keep running and new timers will be spawned every time another viewController is created.