Мне нужно создать программный код UIToolbar
и UIBarButtonItem
. Я использую Storyboard
для макета. Как теперь открывается новый вид, нажав кнопку на панели инструментов, которая была запрограммирована программой? (Я знаю, как это сделать с Segue
, когда кнопка создана в интерфейсе Builder, но я не могу использовать этот подход здесь).UIBarButtonItem открыть новый вид при использовании раскадровки
ответ
Прежде всего, создайте UIBarButtonItem
используя следующий код:
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonItemStylePlain target: self action: @selector(showNewView)];
Затем
-(void)showNewView
{
UIStoryboard *story =[UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
UIViewController *newViewController = [[postDetailViewControllerIphone alloc]init];
newViewController=[story instantiateViewControllerWithIdentifier:@"newView"];
[self presentViewController:newViewController animated:YES completion:nil];
}
Этот код позволит barButtonItem открыть новый просмотрите контроллер.
Если вы не добавили barButtonItem на панель инструментов, сделайте это после создания barButtonItem.
NSArray *toolBarItems = [[NSArray alloc] initWithObjects:barButtonItem,nil];
[self.toolBar setItems:bottomtoolBarItems];
Это добавит ваш barButtonItem к панели инструментов.
Удивительно, спасибо за подробный ответ. Еще один вопрос. У меня уже есть множество просмотров в моей раскадровке. Новое представление должно получить сгенерированное программным способом (как ваш код) из существующего представления (viewcontroller). Как я исхожу из этого. Насколько я понимаю, представление создается во время выполнения, но не является частью раскадровки. Нужно ли рисовать новое представление в раскадровке и называть его (его классы) '' newView "' без использования Segue? – JFS
При создании UIBarButtonItem
убедитесь, что вы задали цель и действие. Затем в вызываемом методе представьте свой следующий контроллер представления.
Создайте элемент кнопки панели.
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonItemStylePlain target: self action: @selector(presentVC:)];
Представить контроллер вида.
-(void)presentVC:(id)sender
{
[self presentViewController: otherViewController animated: YES completion:^{
// COMPLETION BLOCK
}];
}
Спасибо за ответ! Означает ли это, что я могу смешивать оба подхода в раскадровке: используя segues и используя код для подключения представлений (viewcontrollers)? – JFS
- 1. Как открыть новый вид при касании uiview?
- 2. Открыть NSWindow от xib при использовании раскадровки и быстрота
- 3. Как нажимать новый вид без раскадровки Swift
- 4. instantiateViewController: пытаясь открыть новый Вид
- 5. Нажмите новый вид на вид спереди при использовании PKRevealController
- 6. Изменить UITabBarController при использовании раскадровки
- 7. Collectionview cell, чтобы открыть новый вид
- 8. Открыть новый вид с NavigationView (android)
- 9. Настройка uitableviewcell при использовании раскадровки
- 10. подклассов UIWindow при использовании раскадровки
- 11. Пользовательская инициализация при использовании раскадровки
- 12. Как вы можете создать новый вид раскадровки без кнопки
- 13. Открыть новый вид в новой вкладке/окне
- 14. Как открыть новый вид и убить его?
- 15. открыть новый вид внутри приложения делегат
- 16. Как получить UIBarButtonItem, чтобы открыть новый контроллер представления swift 3
- 17. Внешний вид UIBarButtonItem и setBackButtonBackgroundImage
- 18. Мгновенное действие ViewController при использовании раскадровки
- 19. XCODE Раскадровки, вид на пейзаж
- 20. Новый UIPickerView из раскадровки?
- 21. Предупреждения раскадровки при использовании вложенных представлений стека
- 22. IBoutlets NIL в стриже при использовании раскадровки
- 23. Кнопка навигации контроллера навигации не отображается при использовании второй раскадровки
- 24. Странное поведение UIBarButtonItem при использовании UIAppearance
- 25. новый ActionBarDrawerToggle при использовании AppCompatActivity
- 26. вид доступа внутри раскадровки
- 27. Новый вид при нажатии кнопки
- 28. UIImage/tapgesturerecognizer/Новый вид
- 29. присвоение пользовательского класса UIWindow при использовании раскадровки
- 30. Почему AwakeFromNib вызывается повторно при использовании раскадровки?
Какую презентацию вы хотите? Modal? От себя? – MJN
Я бы использовал модальную презентацию. – JFS