ManWithBear: К сожалению более или менее вменяемого решения нет.
Если использовать "приватное апи", то всегда можно получить все segue данного контроллера, из этих segue выдрать идентификаторы привязанных viewController'ов и уже их загрузить и менеджить как хошь
Что-то типа такого
NSArray *arr = [self valueForKey:@"_storyboardSegueTemplates"];
for (UIStoryboardSegue* segue in arr) {
UIViewController *vc = [segue valueForKey:@"_destinationViewControllerIdentifier"];
[self.view addSubview:vc.view];
return;
}
Сами понимаете, какая практическая ценность этого кода...
Еще как вариант, можно сделать свой ContainerVC наследником UITabBarViewController (просто убрать tabbar и самому менеджить изменениение childVc. Но это тот же костыль
Так что, резюмируя - самое адекватное решение - через код.
Либо задав специализированный storyboard id для всех чилд вьюконтроллеров аля "childVC_%i"
Ну а дальше грузить тупо грузить перебирая все childVC_%i через instantiateViewControllerWithIdentifier
ну тут проблема - получить нужный класс. А дальше никто не мешает нагенерировать в рантайме сабклассы с префиксом либы
Был MMClass в либе А и класс в либе Б
Проходитесь по всем классам либы и на основе полученного класса генерируете сабкласс A_ClassName
После этой нехитрой операции у вас в рантайме будет два класса
A_MMClass и B_MMClass
Хотя с бандлом наверное не сработает
нужно смотреть в сторону
class_getImageName(objc_getClass("NotMissingRoot"));
testassert(image);
objc_copyClassNamesForImage(
Да, это не только согласуется, но и единственный официальный способ запускать сторонние приложения до выхода iOS 8. А некоторые приложения (launchpad'о подобные) даже фичерились Apple в сторе. Единственная проблема - найти все url scheme для сторонних приложений. Разработчики не часто их публикуют в открытый доступ.
Для apple решения как-то так
UITableViewRowAction *edit = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:@"edit" handler:^(UITableViewRowAction *action, NSIndexPath *indexPath){
[self performSegueWithIdentifier:@"editSegue" sender:sender];
}];
Предварительно в storyboard нужно создать переход с id editSegue
Алексей: еще раз, вы там нагородили
У Вас существует два отдельных хранилища для карточек. Одно из них находится в lesson
Другое в самом контроллере, который вначале вы заполняете карточками из lessen, но это не отменяет того факта, что это два разных хранилища.
И вот когда вы количество ячеек берете из первого, а вставляете новую карточку во второе - получается фигня
zugo: я так же считал ранее, но сейчас наблюдаю движение в совсем другую сторону, ну по крайней мере в ios. Нативное приложение получается более отзывчивым и заточенным под таргетированую платформу, чем web. People love it. По времени разработки так же различия небольшие. Загадывать глупо, но пока нативные приложения - наше все
Да, с pagingom есть проблема, когда нужно скрол сделать для страниц, отличных от размеров scrollview. Но можно же сделать свой paging)) переопределив методы делегата scrooll view