我正在开发iPhone应用程序,但发现我需要另一个视图/窗口让用户输入并保存数据/信息。
如何添加其他视图?我是否在界面构建器中添加它,然后将其链接到主应用程序委托中,或者它是否有自己的.h和.m文件。
我选择了一个窗口视图应用程序,我是否需要从翻转侧视图应用程序重新开始,或者如果我在那里有正确的代码,就可以添加它。
曼尼谢谢
卡尔
答案 0 :(得分:5)
Window应用程序非常适合您。在AppDelegate文件中,您应该有这样的部分:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
//instantiate the venue view controller object
YourViewController *yourViewController = [[YourViewController alloc] initWithNibName:@"YourView" bundle:[NSBundle mainBundle]];
// Configure and show the window
[window addSubview:[yourViewController view]];
[window makeKeyAndVisible];
}
这是代码的一部分,用于声明,分配和添加自定义视图到窗口。您可以选择添加第二个视图。您可以将其添加到此位置,也可以使用导航控制器将其添加到此位置之后。要添加导航控制器,请将上述方法更改为:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
//instantiate the venue view controller object
YourViewController *yourViewController = [[YourViewController alloc] initWithNibName:@"YourView" bundle:[NSBundle mainBundle]];
UINavigationController *yourViewControllerWrapper = [[UINavigationController alloc] initWithRootViewController: yourViewController];
// Configure and show the window
[window addSubview:[yourViewControllerWrapper view]];
[window makeKeyAndVisible];
}
在那里,我们创建您的自定义视图,然后将其包装在导航控制器中。导航控制器是添加到窗口的内容。接下来,切换到第二个视图的代码如下所示,假设您按下按钮切换视图:
-(IBAction)switchViewController{
MySecondViewController *secondViewController = [[MySecondViewController alloc] init];
[self.navigationController pushViewController:secondViewController];
}
当然,您应该替换
行MySecondViewController *secondViewController = [[MySecondViewController alloc] init];
使用正确的方式实例化第二个视图控制器。这可以来自上面的nib文件,也可以是编程方式。
就创建视图文件而言,您应该在“界面”构建器中为所有内容的布局创建一个nib,然后为.h
代码本身创建一个.m
和ViewController
文件。
答案 1 :(得分:1)
您还可以显示新框架而不是新视图。有时更容易,因为你没有;必须传递参数 - 你在一个类:
CGRect frame = okresView.frame;
frame.origin.x = frame.size.width;
if ( [okresView superview] == nil )
{
[self.view addSubview:okresView];
}
okresView.frame = frame;
[okresDataTableView reloadData]; // przeładowanie tabeli na subwidoku
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.5];
frame.origin.x = 0;
okresView.frame = frame;
[UIView commitAnimations];
如果你想要新的子视图,你可以使用几种方法 - 只需从XCode帮助中下载一些应用程序并检查它们是如何做到这一点的。很好的例子是'Elements'和'UICatalog'应用程序,你可以在其中翻转视图和其他示例。
//创建并推送另一个视图控制器。 UIViewController * myViewController = [[UIViewController alloc] init]; myViewController.title = @“我的第一视图”; myViewController.view.backgroundColor = [UIColor redColor];
//推动UIView。 [self.navigationController pushViewController:myViewController animated:YES];