2012-02-15 2 views
0

Есть ли другой способ вызова UIViewCOntroller, без следующего;Как вызвать UIViewController

HelloUIViewController *hello = [[HelloUIViewController alloc]initWithNibName:nil bundle:nil]; 
[self.navigationController pushViewController:hello animated:YES]; 

Приведенный выше код будет установлен вид в панели навигации, где вы получите BackButton, а также (кнопку в форме стрелки при переходе от просмотра для просмотра).

Я просто хочу, чтобы перейти к новому UiviewController, и не хотите, чтобы иметь BackButton (в основном viewController не должен быть выдвинут в навигационный стек)

+0

Вы ищете [модальное зрение] (https://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/ModalViewControllers/ModalViewControllers.html)? – esqew

+0

Вы можете столкнуться с проблемами, которые нажимают ваш вид без указанного имени ниба. –

+1

@BillBrasky Какие проблемы? Если вы не укажете имя, UWiewController '-loadView' будет искать нить с именем, которое совпадает с именем контроллера представления, то есть HelloUIViewController.xib в этом случае. – Caleb

ответ

2

Должно работать:

UIWindow *window = [[UIApplication applicationDelegate] window]; 
window.rootViewController = [[HelloUIViewController alloc] initWithNibName:nil bundle:nil]; 

Конечно, это может быть не совсем то, что вы хотите. Он установит контроллер представления в качестве контроллера корневого представления окна. Если вы хотите сохранить свой навигационный контроллер и просто показать новый контроллер вне стека навигации, вам нужно будет представить контроллер представления по модулю. С другим контроллера зрения, вы можете:

HelloUIViewController *hello = [[HelloUIViewController alloc]initWithNibName:nil bundle:nil]; 
[self presentViewController:hello animated:YES completion:nil]; 
+1

Он должен появиться горизонтально, как и pushviewcontroller. а не вертикально. – sharon

+1

Можете ли вы рассказать о том, почему вы не хотите нажимать его на стек навигатора? Похоже, вы хотите, чтобы он выглядел так, как будто это часть навигационного стека, и просто не отображает навигационную панель или кнопку «Назад». Скрытие панели навигации и толкание, как описано выше, - это простой способ сделать то, что вам кажется нужным. – Caleb

2

Если вы не хотите, чтобы Панель навигации, присутствует ваш ViewController модально.

[self presentModalViewController:helloViewController animated:YES]; 
+0

Обратите внимание, что этот метод не является предпочтительным для Apple с iOS 5 (см. Https://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIViewController_Class/Reference/Reference.html). Вместо этого используйте 'presentViewController: анимированный: завершение:'. – kevboh

+0

Вы правы. Просто записал ту, которую я запомнил = p – ArtSabintsev

+0

Он должен отображаться горизонтально, например, pushviewcontroller. а не вертикально. – sharon

1

вы можете скрыть панель навигации:

self.navigationController.navigationBarHidden = YES; 

Или, если вы хотите сохранить панель навигации, но только избавиться от задней кнопки вы можете сделать что-то вроде этого:

self.navigationController.backItem.hidesBackButton = YES; 
Смежные вопросы