В рассматриваемом контроллере представления, как насчет того, чтобы настроить делегата.
id delegate;
@property (nonatomic, assign) id delegate;
для заголовка, затем синтезируйте в реализации.
Всякий раз, когда вы нажимаете на этот контроллер вида, установите self
в качестве делегата от толкающего вида. Затем в этом контроллере представления вы можете выполнить проверку в viewDidLoad
или viewDidAppear:
(или там, где вы считаете, что это необходимо) с помощью чего-то вроде следующего:
if ([self.delegate isKindOfClass:[SomeClass class]]) {
// now you can find which class sent to this view;
}
Это должно сработать, поэтому я надеюсь, что это поможет вам
РЕДАКТИРОВАТЬ: учитывая, что вы переключаете представления, не всегда используя навигационный контроллер, вышеупомянутое не будет действовать постоянно В этом случае вам, вероятно, лучше использовать внутреннее свойство, а также выход на панель настроек. Так что в этом контроллере представления вы захотите что-то вроде этого в шапке:
BOOL shouldReset;
@property (readwrite) BOOL shouldReset;
В вашем viewDidLoad
вы захотите инициализировать это как shouldReset = YES
. Вы должны также указать это в вашем viewDidDisappear:
, поскольку это ваше поведение по умолчанию. Когда вы представляете панель настроек, дайте настройкам розетку для текущего контроллера вида, чтобы вы могли из настроек (при нажатии кнопки назад) установить [self.otherViewController setShouldReset:NO]
. Затем в вашем viewDidAppear:
для исходного контроллера представления, о котором идет речь, вы можете проверить, должен ли он сбросить свои поля или нет