У меня возникли проблемы с переходом с UITableViewController на UIViewController.Xamarin iOS PrepareForSegue не называется
Я пытаюсь сделать приложение, которое позволяет пользователю выполнять поиск частей внутри SAP и отображать их в простой таблице. Когда пользователь нажимает на одну строку, откроется подробная страница.
К сожалению, навигация не работает, и я понятия не имею, почему. Я использую раскадровку, содержащую UINavigationController -> UITableViewController -> UIViewController.
Я установил segue из моего UITableViewController на страницу подробностей (UIViewController), нажав клавишу управления в Visual Studio 2015 Designer и вычерчивая строку из TableCell для моего UIViewController. Я вижу, что ячейка таблицы получает жирную синюю границу.
После этого устанавливается идентификатор segue на «PartDetailSegue». В моем UITableViewController я перезаписал функцию PrepareForSegue.
Когда я добавляю точку останова к функции PrepareForSegue и запускаю приложение, функция не вызывается при нажатии на ячейку таблицы. Есть что-то, чего я не вижу?
кодекса в моей UITableViewContoller
public override void PrepareForSegue(UIStoryboardSegue segue, NSObject sender)
{
if (segue.Identifier == "PartDetailSegue")
{
var navctlr = segue.DestinationViewController as PartDetailViewcontroller;
if (navctlr != null)
{
var rowPath = TableView.IndexPathForSelectedRow;
var item = ((PartsTableViewDataSource)TableView.Source).GetItem(rowPath.Row);
navctlr.SetPart(this, item);
}
}
}
Я использую Visual Studio 2015 Update 3. Последние обновления для Xamarin установлены.
Происходит ли процесс segue (происходит ли UIViewController)? В противном случае я попытался бы запустить его вручную, переопределив «RowSelected» и вызывая «this.PerformSegue» («PartDetailSegue», это); », чтобы запустить segue и посмотреть, работает ли segue правильно. ('this' будет экземпляром' UITableViewController'). Я предполагаю, что что-то неправильно настроено в раскадровке. – dylansturg
Спасибо, что ответили! Секуляция происходит, когда я вызываю ее через this.PerformSegue («PartDetailSegue», это); Я уже обокрался. Таким образом, кажется, что установка настроена правильно. На моем хранилище UITableViewController связан с моим собственным классом, который наследует форму UITableViewController и переопределяет функцию PrepareForSeque. Идентификатор сегмента также установлен. –
Я просто попробовал это с помощью Xamarin Studio с раскадрой, и все это работало, как ожидалось. Так что ** ** должен работать в VS. Вы уверены, что выбрали опцию «Селекция выбора» «Показать»? Вы можете попробовать создать сеанс с Xamarin Studio и посмотреть, есть ли ошибка в VS. – dylansturg