2009-06-09 64 views
1

我正在一个iPhone应用程序工作,但发现我需要另一个视图/窗口让用户输入并保存有数据/信息。iPhone应用程序 - 添加另一种观点认为

如何添加另一种观点?我是否将其添加到界面构建器中,然后将其链接到主应用程序委托中,还是将其具有自己的.h和.m文件。

我选择的窗口视图的应用程序,开始时,我需要一个反面视图的应用程序重新开始或可在此只是在加入反正如果我有正确的代码存在。

曼尼感谢

卡尔

回答

5

该窗口的应用程序是您的最佳选择。在你的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文件或编程方式。

至于创建视图文件,你应该建立在Interface Builder笔尖一切的布局,然后创建一个.h.m文件的ViewController代码本身。

+0

谢谢你的帮助,我会试试这个 – carl 2009-06-09 14:10:34

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 = @“My First View”; myViewController.view.backgroundColor = [UIColor redColor];

//推UIView的。 [self.navigationController pushViewController:myViewController animated:YES];