如你所说,我仍然是一个新手,让我的脑袋围绕iphone开发。 我只是尝试按需加载基本视图,我无法开始工作
我有一个应用程序,有2个视图控制器,每个视图控制器连接一个不同的nib文件。 我想手动切换视图;没有导航控制。
如何手动将第二个视图推送到第一个视图?
self.navigationController pushViewController
因为没有导航控制器而无法工作。
如何在第一个视图的顶部推动第二个视图并销毁第一个视图;和反之亦然?
我在第一个视图的按钮操作中完成了这个操作:
SecondView *sv=[[SecondView alloc] initWithNibName:@"SecondView" bundle:nil];
[self.navigationController pushViewController:sv animated:YES];
显然,它没有用。
window addSubView
也不起作用,因为第一个视图控制器是根视图控制器(不确定我说的是正确的)。换句话说,当我运行应用程序时,第一个视图就是我看到的一个按钮,它应该加载第二个视图。
我花了几个小时寻找一个简单的例子,我找不到任何一个。
有什么建议吗?
答案 0 :(得分:10)
在第一个视图控制器中你需要这个:
- (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];
}
然后将其链接到笔尖中的按钮。 :)
答案 1 :(得分:8)
尝试:
SecondView *sv=[[SecondView alloc] initWithNibName:@"SecondView" bundle:nil];
[self presentModalViewController:sv animated:YES];
答案 2 :(得分:0)
如果你有第一个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];
}