Насколько я знаю, невозможно получить доступ к вашей функции таким образом. Но вы можете создать сервис и получить доступ к своей функции из ваших контроллеров / директив / компонентов и т. Д.
function lifeSpanService() {
let service = {};
service.getLifeSpan = (LifeSpan) => {
var number = eval(LifeSpan)
return Math.abs(number);
}
return service;
}
angular.module('myApp')
.service('lifeSpanService', lifeSpanService);
Затем вы можете использовать внедрение зависимостей для доступа к этому сервису из вашей директивы
angular.module('myApp')
.directive('lifeSpan', ['$rootScope', 'lifeSpanService', ($rootScope, lifeSpanService) => {
return {
link : (scope, element, attrs) => {
let value = 1;
let lifespan = lifeSpanService.getLifeSpan(1);
}
}]);
Я делаю это в нескольких своих приложениях. Прием к добавлению панели вкладок к navigationController базировался, приложение не должно использовать TabBarController. Добавьте Панель вкладок к представлению, сделайте контроллер представления для того представления TabBarDelegate и ответьте на пользовательские выборы на панели вкладок в коде контроллера представления.
Я использую Панели вкладок, чтобы добавить дополнительные представления к представлению Панели вкладок как подпредставления, перезагрузить табличное представление с различными наборами данных, перезагрузить UIPickerView, и т.д.
Смотрите на пример кода UICatalog. Это имеет много большого материала в нем, включая переход от одного представления до следующего.
В Вашем случае необходимо использовать метод делегата UITableView
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
В том методе Вы создадите и отобразите свой контроллер представления вкладки. Это могло быть пользовательским контроллером со связанным Nib, или Вы могли создать все это в коде в зависимости от Вашего обстоятельства.
Это - лучшая идея встроить панель навигации в приложение с вкладками, когда это возможно. При выполнении его, другой путь создает некоторые сложности, является трудным при выполнении с IB и продвижении к большой проблеме.
Простой ответ должен сделать это приложением панели вкладок, которое загружает контроллеры навигации.
Панель вкладок будет Вашим компонентом высшего уровня, затем можно загрузить контроллеры навигации для каждой вкладки. Оттуда это должен быть довольно стандартный материал. Я должен был научиться этому на горьком опыте только что.
Можно запустить с основного шаблона приложений Панели вкладок в XCode, он должен установить основную панель вкладок с 2 простыми представлениями.
Можно использовать Интерфейсного Разработчика, чтобы отредактировать MainWindow.xib и добавить Контроллер Панели вкладок к Контроллеру Навигации. Можно также изменить контроллеры представления UITabBarController на Представление/Навигацию/Таблицу Контроллеры Средства выбора View/Image с окном Inspector IB. Это будет работать.
Однако я действительно не предлагаю поместить Контроллер Панели вкладок в Контроллер Навигации. Отношения между этими контроллерами запутаются, если Вы пойдете далее (сделайте их более сложными).
Принятие Вас имеет Контроллер Табличного представления в Вашем Контроллере Панели вкладок и хочет поднять представление детали. Дизайном Вы могли бы хотеть сказать Контроллеру Навигации продвигать представление в стек, но выполнение этого сделает представление детали, становится тем же уровнем с Вашим Контроллером Панели вкладок (оба под Контроллером Навигации), и Контроллер Табличного представления содержат отношение как родителя представления детали. Это довольно странно, по крайней мере, мне...
Окончательный ответ на этот вопрос представлен в документации iPhone SDK в Руководстве по программированию контроллера View для iPhone .
Руководство по программированию контроллера представления: объединение контроллеров представления
Эта ссылка ведет прямо к разделу и включает обсуждение правильных способов создания интерфейсов на основе панели вкладок и навигации.