Реализация @ repeat является, безусловно, самой эффективной с текущими процессорами Prolog, но я все же предпочитаю использовать DCG для этой цели - тайно надеясь, что в один прекрасный день технология внедрения будет достаточно хороша, чтобы запустить ее с сопоставимой (пространственной) эффективностью.
list_butlast(Xs, Ys) :-
phrase( ( seq(Ys), [_] ), Xs).
seq([]) -->
[].
seq([E|Es]) -->
[E],
seq(Es).
Вы должны расширить BookListViewController
из UIViewController
и представить этот контроллер из другого контроллера, подобного этому self.present(UINavigationController(rootViewController: BookListViewController()), animated: true)
, тогда вы можете легко получить доступ к navigationItem
с помощью self.navigationItem
внутри BookListViewController
.
self показывает текущий контекст, когда мы используем self.navigationController, тогда мы фактически говорим push, чтобы выполнить этот push при использовании контроллера навигации текущего представления:
self.navigationController.pushViewController(editViewController, animated: true)
В раскадровку необходимо добавить контроллер навигации, который делает этот контроллер корневым контроллером. Просто перетащив с контроллера навигации на контроллер таблицы.