Я думаю, здесь есть некоторые недоразумения. Давайте все проясним:
viewWillAppear:
не имеет ничего общего с чертежом вида.
- Это правда, что
setNeedsDisplay
не перерисовывает вид мгновенно, но мы говорим миллисекунды. Так что это даже не актуально.
Поскольку вы хотите, чтобы вызывался viewWillAppear:
, я предполагаю, что то, что вы называете перерисовкой представления, действительно должно называться ретрансляцией представления. Я предполагаю, что то, что вы делаете в viewWillAppear:
, - это установка рамок ваших представлений и, возможно, добавление / удаление и / или показ / скрытие некоторых представлений.
Я предлагаю вам переместить этот код из viewWillAppear:
в его собственный метод, который будет вызываться из viewWillAppear:
и при нажатии кнопки.
Поскольку вы не предоставляете свой код viewWillAppear:
, все это основано на предположениях, поэтому, если мои предположения неверны, пожалуйста, дайте мне знать, и, пожалуйста, предоставьте ваш код "перерисовки".