Да, то, что вы написали, правильно. Также ваше подпредставление должно быть новым классом, переопределяющим нужные вам методы. Вы можете поддерживать его глобально, предоставляя метод для возврата экземпляра, более похожего на одиночный.
Поместите переменную в класс делегата приложения. Выделите и инициализируйте его, и вы можете получить к нему доступ через геттер. Объявите переменную в вашем делегате.
[UIApplication sharedApplication].delegate].globalInstance;