2013-09-11 5 views
-2

Я создаю экран тура, где пользователь будет прокручивать влево и вправо, чтобы показать некоторые учебные страницы.iOS UINavigationController Not Working

Однако у меня возникают проблемы при загрузке, нажимая следующий вид. Я создал UINavigationController, как показано ниже, в методе handleSwipes:

TourViewController2 *tourView2 = [[TourViewController2 alloc] initWithNibName:@"TourViewController2" bundle:nil]; 

UINavigationController* navigationController = [[UINavigationController alloc] init]; 

[navigationController pushViewController:tourView2 animated:YES]; 

Любые идеи?

Спасибо.

ответ

1

Как писал Aniket Kote, вам нужно не только создать UINavigationController, но и сделать его rootViewController в вашем приложении. После этого UINavigationConroller стал основным контейнером, и все остальные предметы размещены внутри него. По этой причине вы не должны создавать UINavigationController каждый раз, когда вы хотите перемещаться по страницам, но только один для всех путей навигации, например. когда вы запускаете приложение. Далее вы можете использовать этот «глобальный» навигационный контроллер, такой как

[self.navigationController pushViewController:tourView2 animated:YES]; 
+0

Привет, Итак, вы говорите, что UINavigationController уже определен в любом другом классе в приложении: мне просто нужно использовать TourViewController2 * tourView2 = [[TourViewController2 alloc] initWithNibName: @ «TourViewController2» bundle: nil]; [self.navigationController pushViewController: tourView2 анимированный: ДА]; –

+0

@SaeUs, Да, если текущий UIViewController уже встроен в navigationController. посмотрите здесь: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewController_Class/Reference/Reference.html#//apple_ref/occ/instp/UIViewController/navigationController. – Thaven

0
Try this: 

TourViewController2 *tourView2 = [[TourViewController2 alloc] initWithNibName:@"TourViewController2" bundle:nil]; 

UINavigationController* navigationController =[[UINavigationController alloc]initWithRootViewController:tourView2]; 

self.window.rootViewController=navigationController; 
+0

Привет, спасибо. Однако мой класс не имеет свойства окна, это то, что можно просто определить? –

0

После прочтения вашего требования я не буду продолжать ваш подход. Я предлагаю использовать «Page Control». В соответствии с определением Apple, ниже: -

UIPageControl указывает количество открытых страниц в приложении по отображающее точку для каждой открытой страницы. Выделяется точка, соответствующая просматриваемой странице . UIPageControl поддерживает навигацию , отправив делегату событие, когда пользователь нажимает на справа или слева от текущей выделенной точки.

Надеюсь, это вам поможет!