У меня есть несколько UIViewControllers
в одной раскадровке.
Теперь я хочу переместить часть UIViewControllers
в другую раскадровку. Возможно ли это?
Перемещение или копирование контроллера просмотра из одной раскадровки в другую
Ответ 1
Да, это возможно.
- Выберите контроллеры, которые вы хотите скопировать.
- Нажмите Command + C
- Откройте второй файл раскадровки
- Нажмите Command + V
Примечание:. IBOutlets остается таким же, как после копирования (проверено на Xcode 6.3.2).
Ответ 2
Можно скопировать, но вам нужно одновременно открыть оба раскадровки в одном проекте, а затем скопировать и вставить.
Ответ 3
В Xcode 8, если вы специально хотите переместить контроллеры представлений в другую раскадровку, просто выберите контроллер просмотра, который вы хотите переместить с помощью Cmd + щелкнуть на контроллере представления. Сохраните их, перейдите на вкладку "Редактор" и выберите "Refactor to Storyboard". Он спросит вас имя нового файла раскадровки и нажмите "Enter".
Новый файл раскадровки будет создан с выбранными вами контроллерами представлений. В Main.storyboard вы увидите объект Reference Storyboard вместо этого контроллера представления, который является вашей ссылкой на новую раскадровку, которую вы только что создали.
Ответ 4
Скопировать-вставить (Command + C, Command + V) отлично работает, но не забудьте разрешить выходные соединения, потому что Xcode, похоже, поддерживает исходные соединения: закрыть/повторно открыть проект, удалить что-то неправильно и восстановить отсутствующие соединения.
Ответ 5
Можно копировать/вставлять, но он работает только в том случае, если у вас есть две раскадровки, открытые бок о бок с помощью редактора помощников Xcode.
Ответ 6
Элементы интерфейса можно перемещать между файлами Xib и Storyboard с помощью Копировать/Вставить.
Это изначально не работало для меня. Я пытался скопировать UICollectionViewCell из выделенного Xib на наш основной раскадровки. Ячейка не будет копироваться в Раскадровку.
Решением было выбрать определенный родительский элемент в раскадровке. UICollectionViewCell может быть вставлен в виде дочернего элемента UICollectionView в раскадровке, но в противном случае нельзя вставить его.
Если у вас возникли проблемы с вставкой определенного элемента, убедитесь, что вы дважды проверяли, что вы выбрали действительный родительский элемент, прежде чем пытаться вставить.
Ответ 7
Если вы используете Cut-n-Paste, вы можете обходным путем. Вставка не будет работать, если в файл, который вставлен, теперь есть ViewController. Это делает невозможным выбор раскадровки для вставки. XCode откажется вставить. Поэтому вам нужно сначала перетащить пустой контроллер представления в раскадровку из библиотеки. Затем выберите этот viewController в раскадровке, а затем паста будет работать. После того, как вы закончите вставку, вы можете удалить фиктивный viewController. Вам больше не понадобится.
Ответ 8
Я думаю, что это возможно....
UIStoryboard *secondStoryBoard = [UIStoryboard storyboardWithName:@"secondStoryBoard" bundle:nil];
UIViewController *theTabBar = [secondStoryBoard instantiateViewControllerWithIdentifier:@"myTabBar"];
[self.navigationController pushViewController:theTabBar animated:YES];