Обновление view с переданными данными

Имеется tabBar с двумя вкладками. На первой вкладке view со списком пользователей. При нажатии на пользователя открывается вторая вкладка с view на котором карточка пользователя. Я передаю в тот контроллер user'а и делаю profileView.viewDidLoad(). Далее уже отслеживаю поведение и вот что получается:

Readу to send ----- User ID: 7
viewDidLoad ----- User ID: 7
viewDidLoad ----- User ID: 7
viewDidLoad ----- User ID: 1
viewWillAppear ----- User ID: 1

Почему viewDidLoad вызывает трижды и почему меняется ID пользователя на значение по умолчанию? Если этот метод не подходит, то какой использовать для обновления view?

UPDATE

Задача такая: Если я тыкаю на юзера, то должна открыться вторая вкладка таббара и в ней быть данные того юзера, на которого тыкнул. Если я делаю так, то у меня открывается вьха с профилем юзера по умолчанию. А этот никак не передаётся

func showUserProfile(sender: User.Identifier) {
        let profileView = ProfileViewController()
        guard let user = DataProviders.shared.usersDataProvider.user(with: sender) else { return }
        tabBarController?.selectedIndex = 1
        profileView.receivedUser = user
        navigationController?.pushViewController(profileView, animated: true)
    }

Ответы (1 шт):

Автор решения: NSA-bot

Если у вас, например какая-то таблица, можно использовать метод reloadData.

Если у вас просто view с текстом и картинкам, тогда используйте уведомления (notification) или тригеры.

→ Ссылка