Переход к другому контроллеру представления без контроллера навигации - PullRequest
3 голосов
/ 09 ноября 2010

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

У меня есть приложение, с двумя контроллерами представления, каждый контроллер представления подключен по-разному. Я пытаюсь переключаться между просмотром вручную; управление навигацией не предусмотрено.

Как я могу вручную переместить второй вид в первый вид? self.navigationController pushViewController не будет работать, так как нет контроллера навигации. Как еще я могу выдвинуть второй вид сверху первого вида и уничтожить первый вид; и конечно же наоборот? Я сделал это в действии кнопки первого вида:

SecondView *sv=[[SecondView alloc] initWithNibName:@"SecondView" bundle:nil];
[self.navigationController pushViewController:sv animated:YES];

очевидно, это не сработало.

window addSubView тоже не работал, потому что первый контроллер представления является корневым контроллером представления (не уверен, что я сказал это правильно). Другими словами, когда я запускаю приложение, первое представление - это то, что я вижу с помощью кнопки, которая должна загрузить второе представление.

Я часами искал простой пример и не смог его найти.

Есть предложения?

Ответы [ 3 ]

10 голосов
/ 09 ноября 2010

в первом контроллере представления вам нужно это:

- (IBAction)pushWithoutViewController:(id)selector {
    NextNavigationController *page = [[NextNavigationController alloc] initWithNibName:NextNavigationController bundle:nil];
    CGRect theFrame = page.view.frame;
    theFrame.origin = CGPointMake(self.view.frame.size.width, 0);
    page.view.frame = theFrame;
    theFrame.origin = CGPointMake(0,0);
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:0.8f];
    page.view.frame = theFrame;
    [UIView commitAnimations];
    [self.view addSubview:page.view];
    [page release];
}

и затем связать его с кнопкой в ​​кончике. :)

8 голосов
/ 09 ноября 2010

попробуй:

SecondView *sv=[[SecondView alloc] initWithNibName:@"SecondView" bundle:nil];
[self presentModalViewController:sv animated:YES];
0 голосов
/ 24 апреля 2013

Если у вас есть первый xib и вы хотите передать навигацию другому контроллеру, тогда вы должны объявить навигацию в appdelegate.m напишите следующий код в приложение

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
self.window.rootViewController = navController;

затем в ViewController.m

- (IBAction)NextButtonClicked:(id)sender
{
    yourNextViewController *objyourNextViewController = [[yourNextViewController alloc] initWithNibName:@"yourNextViewController" bundle:nil];
    [self.navigationController pushViewController:objStartUpViewController animated:TRUE];
}
...