Краткий ответ: Если вы используете UINavigationController, вы можете использовать его visibleViewController, чтобы вам не приходилось отслеживать отдельное логическое значение.
Длинный ответ: Обычно, когда я вызываю reloadData внутри viewWillAppear, это указывает на то, что моему представлению необходимо наблюдать некоторую дополнительную часть моей модели. Проблема с reloadData состоит в том, что он собирается перезагрузить всю вашу таблицу. Часто вам действительно нужно обновить только небольшую часть таблицы. Моя стратегия обычно состоит в том, чтобы обновлять только то, что мне нужно, так, как это происходит, независимо от того, виден ли конкретный вид в это время. Я знаю, что это довольно расплывчатый ответ ... может быть, ваш пример кода поможет мне быть более конкретным ...