Перезагрузка ViewController

У меня есть контроллер просмотра, отображающий некоторую информацию (а не таблицы).

У меня есть запрос на обновление удаленного сервера, который заполняет мою базу данных. Я хочу полностью перезагрузить мой ViewController после завершения вызова обновления.

Что мне делать?

9 Solutions collect form web for “Перезагрузка ViewController”

Вам действительно не нужно делать:

 [self.view setNeedsDisplay]; 

Честно говоря, я думаю, что это «давайте надеяться на лучший» тип решения, в данном случае . Существует несколько подходов к обновлению UIView s:

  1. КВО
  2. Уведомления
  3. Делегация

У каждого есть плюсы и минусы. В зависимости от того, что вы обновляете и какое «соединение» у вас между бизнес-слоем (подключение к серверу) и UIViewController , я могу порекомендовать тот, который будет соответствовать вашим потребностям.

если вы знаете, что обновленная база данных hasbee обновлена, и вы хотите просто обновить viewcontrolle (это тоже мое дело). Я не нашел другого решения, но то, что я сделал, – это когда обновлена ​​моя база данных

[self viewDidLoad];

снова, и это сработало. помните, если вы переопределите другой viewWillAppear или loadView, тогда вызовите их в том же порядке. как.

[self viewDidLoad]; [self viewWillAppear: YES];

но я думаю, что в браузере должно быть более конкретное решение, например, кнопка обновления. если у кого-то есть plz upload anse

Если вы хотите перезагрузить ViewController, первоначально загруженный из XIB, вы можете использовать следующее расширение UIViewController:

 extension UIViewController { func reloadViewFromNib() { let parent = view.superview view.removeFromSuperview() view = nil parent?.addSubview(view) // This line causes the view to be reloaded } } 

Попробуйте это, вам нужно вызвать оба метода, чтобы перезагрузить просмотр, поскольку этот работает для меня,

Объективный-C

 [self viewDidLoad]; [self viewWillAppear:YES]; 

-Swift

 self.viewDidLoad() self.viewWillAppear(true) 

Обновите данные … измените названия кнопок .. что бы вы ни обновляли.

то просто позвоните

 [self.view setNeedsDisplay]; 

Повторно инициализировать контроллер вида

 YourViewController *vc = [[YourViewController alloc] initWithNibName:@"YourViewControllerIpad" bundle:nil]; [self.navigationController vc animated:NO]; 

Вернитесь к своему ViewController еще раз. в моей ситуации [self.view setNeedsDisplay]; и [self viewDidLoad]; [self viewWillAppear:YES]; [self viewDidLoad]; [self viewWillAppear:YES]; не работает, но метод ниже работал.

В объективе C

 UIStoryboard *MyStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil ]; UIViewController *vc = [MyStoryboard instantiateViewControllerWithIdentifier:@"ViewControllerStoryBoardID"]; [self presentViewController:vc animated:YES completion:nil]; 

Swift:

 let secondViewController = self.storyboard!.instantiateViewControllerWithIdentifier("ViewControllerStoryBoardID") self.presentViewController(secondViewController, animated: true, completion: nil) 

Не рекомендуется вызывать ViewDidLoad или ViewWillAppear самостоятельно.

В ViewDidLoad включена функция loadData () для подготовки данных. Это выполняется при первом запуске.

Когда вы хотите перезагрузить, снова вызовите loadData (), чтобы получить данные из модели. В вызове tableView reloadData () или в обычном представлении setNeedsDisplay ().

Вы должны использовать

 -(void)viewWillAppear:(BOOL)animated 

и установите свои записи, как вы хотите …

  • Кто изменил мое мнение? (на iOS)
  • Как я могу реализовать мини-плейер в Apple Music в своем приложении?
  • добавить UIViewController в subview
  • Архитектура архитектуры iPhone Core - как использовать ее через несколько контроллеров
  • Передача управляемого объекта Orbject из одного ViewController в другой ViewController в Swift?
  • UICollectionView с UIViewController в качестве источника данных
  • presentViewController перемещает мой rootViewController
  • раскадровка iOS - отключить строку состояния на раскадровке один раз
  • Как использовать несколько пользовательских контроллеров iOS без контроллера навигации
  • Последствия плохого программирования: rejectViewController vs popViewController
  • Автоматическая компоновка детского контейнера, встраивающего UIViewController
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.