2013-04-05 2 views
1

Я впервые попробовал простое приложение в RubyMotion. Я просто хочу, чтобы иметь возможность нажать на кнопку, а затем начать UINavigationControllerКак начать NavigationController после нажатия кнопки в rubymotion

шагов: - Пользователь нажимает на кнопку - экран двигается влево и новая навигация начинается

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

Вот то, что я до сих пор

AppDelegate:

#below commented line starts the navigation from the first view 
#navController = UINavigationController.alloc.initWithRootViewController(HomeController.alloc.init) 
@window.rootViewController = HomeController.alloc.init 
true 

HomeController:

def viewDidLoad 
    self.title = "ONE" 
    button = UIButton.buttonWithType(UIButtonTypeRoundedRect) 
    button.frame = [[15,300], [280,50]] 
    button.setTitle("Move to next view", forState: UIControlStateNormal) 
    button.addTarget(self, 
        action: "startNavigationOne:", 
        forControlEvents: UIControlEventTouchUpInside) 

    view.addSubview(button) 
    end 

    def startNavigationOne (sender) 
    #what can I do here to start the navigation? 

конца

ответ

1

Не проверял этот код и писать из памяти, но он должен работать.

def startNavigationOne (sender) 
    # Create your next controller and its navigation controller 
    next_controller = UIViewController.alloc.initWithNibname(nil, bundle: nil) 
    nav = UINavigationController.alloc.initWithRootViewController(next_controller) 

    # Now set it as the root view controller 
    UIApplication.sharedApplication.delegate.window.rootViewController = nav 

    # The current UIViewController will be deallocated when this method exits 
end 
1

Создать свое приложение Na vigation На основе приложения Использование После 3 шага в appDelegate.m файл

Шаг 1: Сначала создайте RootViewController

ViewController *rootViewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; 

Шаг 2: Создать Навигационный контроллер с RootViewController

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController]; 

Шаг 3: Добавить Контроллер навигации к корневому элементу окна ViewController

self.window.rootViewController = self.navController; 

Теперь перейдите на кнопку Click записать эту

Создать свой объект ViewController, который вы хотите Нажмите/Navigate

ViewController *startNavigationOne = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; 

Нажмите чтобы просмотреть с помощью навигации контроллера

[self.navController pushViewController:startNavigationOne animated:YES]; 
+0

На шаге 3, когда я запускаю приложение, у него уже есть панель поверх экрана, что означает, что у нее уже есть навигация. Я не хочу этого. Я хочу, чтобы панель сверху отображалась только тогда, когда я нажимаю кнопку – Anthony

+0

, тогда вам нужно написать это [self.navigationController setNavigationBarHidden: YES animated: YES]; показать и [self.navigationController setNavigationBarHidden: NO animated: YES]; скрыть –

+0

Поскольку это не рубиновый код, его можно легко перевести в рубин. Хорошая информация об этом сообщении - правильное использование метода self.pushViewController. –