В настоящее время я работаю над проектом в Xamarin.iOS и не знаю, как работает система стеков.
У меня есть меню, в котором я выбираю язык своего приложения, и я хотел бы на лету обновить язык на всех предыдущих страницах, когда я выбираю другой язык.
Когда я нажимаю на предыдущую кнопку в моих настройках языка, предыдущая страница не переводится, поэтому я решил создать новый ViewController
, который я помещаю на вершину стека с помощью this.NavigationController.PushViewController(new ViewController(), true)
но я не думаю, что это лучший способ сделать это, поэтому я попытался
this.NavigationController.PopToRootViewController(true)
получить корень ViewController
, но есть ли способ получить только предыдущую страницу в стеке?
public override void RowSelected(UITableView tableView, NSIndexPath indexPath)
{
var cell = this.GetCell(tableView, indexPath);
cell.SelectionStyle = UITableViewCellSelectionStyle.None;
var previousIndexPath = NSIndexPath.FromRowSection(this.selectedIndex, 0);
this.selectedIndex = indexPath.Row;
var selectedLanguage = this.supportedCultures[this.selectedIndex];
Localization.Culture = selectedLanguage;
this.SaveLanguageToUserDefault(selectedLanguage);
this.TableView.ReloadRows(new NSIndexPath[] { previousIndexPath,indexPath }, UITableViewRowAnimation.None);
this.NavigationController.PopToRootViewController(true);
//this.NavigationController.PushViewController(new ViewController(), true);
}