Iphone 视图控制器

Iphone 视图控制器,iphone,xcode,Iphone,Xcode,好的,我已经读了很多书,都有很多很好的例子,比如有多个视图控制器,它们有自己的笔尖,还有苹果的文档 我的问题是:所有示例都显示了通过工具栏或选项卡栏显示的多视图。用户单击其中一个按钮,将显示一个新视图(保持选项卡/工具栏显示),然后他们可以单击选项卡/工具栏上的另一个按钮并转到另一个视图 这是唯一可能的方法吗?如果我想要一个主屏幕,在屏幕中间有三个按钮(玩游戏,规则,高分),点击时,它会产生正确的笔尖文件,这只能通过工具栏/标签栏来完成吗?如果是的话,在一些不存在的应用程序上,这是因为它是“隐藏

好的,我已经读了很多书,都有很多很好的例子,比如有多个视图控制器,它们有自己的笔尖,还有苹果的文档

我的问题是:所有示例都显示了通过工具栏或选项卡栏显示的多视图。用户单击其中一个按钮,将显示一个新视图(保持选项卡/工具栏显示),然后他们可以单击选项卡/工具栏上的另一个按钮并转到另一个视图

这是唯一可能的方法吗?如果我想要一个主屏幕,在屏幕中间有三个按钮(玩游戏,规则,高分),点击时,它会产生正确的笔尖文件,这只能通过工具栏/标签栏来完成吗?如果是的话,在一些不存在的应用程序上,这是因为它是“隐藏的”吗

我知道这可能是最基本的开始,但我似乎无法理解这一点

我读过关于视图、子视图等的内容,随着我的继续,我似乎越来越困惑。如果我在这里完全不正确,有没有这样的例子:

mainViewController,带有具有3个按钮的nib 单击任何按钮都会调用另一个具有自己nib的独立视图。在这个视图中,我可以做它想做的任何事情,然后有一个按钮,可以让我返回到mainViewController

非常感谢您提供的任何帮助/示例


地理位置…

您不需要使用
UINavigationController
来执行此操作

这是我能想到的一种方法。假设如下:

mainMenuViewController
-具有3个按钮的视图控制器

view1ViewController
-其他视图中的第一个视图

view2ViewController
-其他视图中的第二个视图

view3ViewController
-其他视图的第三个

让调用
mainMenuViewController
中的view1的按钮创建UIViewController,然后将其自身从窗口中移除,例如:

YourAppApplicationedLegate*委托=(YourAppApplicationedLegate*)[[UIApplication sharedApplication]委托];
[self.view removeFromSuperview];
[delegate.window addSubview:view1ViewController.view];


您也可以使用每个二级视图控制器中的“返回主菜单”按钮执行相同操作。

您不需要使用
UINavigationController
来执行此操作

这是我能想到的一种方法。假设如下:

mainMenuViewController
-具有3个按钮的视图控制器

view1ViewController
-其他视图中的第一个视图

view2ViewController
-其他视图中的第二个视图

view3ViewController
-其他视图的第三个

让调用
mainMenuViewController
中的view1的按钮创建UIViewController,然后将其自身从窗口中移除,例如:

YourAppApplicationedLegate*委托=(YourAppApplicationedLegate*)[[UIApplication sharedApplication]委托];
[self.view removeFromSuperview];
[delegate.window addSubview:view1ViewController.view];


您也可以使用这些二级视图控制器中的“返回主菜单”按钮执行相同操作。

您可以使用UIViewController中的presentModalViewController/DismissModalViewController激活方法在视图之间来回切换,例如:

- (IBAction)button1IsPressed:(id)sender {
    UIViewController *controller1;
    [controller1 setDelegate:self];
    [self setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
    [self presentModalViewController:controller1 animated:YES];
    [controller1 release];
}

- (void)dismissViewController {
    [self dismissModalViewControllerAnimated:YES];
}
要返回,请在控制器1中调用此函数:

[self.delegate dismissViewController];

这只是一个示例,您可以进行一些改进。

您可以使用UIViewController中的presentModalViewController/DismissModalViewController激活方法在视图之间来回切换,例如:

- (IBAction)button1IsPressed:(id)sender {
    UIViewController *controller1;
    [controller1 setDelegate:self];
    [self setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
    [self presentModalViewController:controller1 animated:YES];
    [controller1 release];
}

- (void)dismissViewController {
    [self dismissModalViewControllerAnimated:YES];
}
要返回,请在控制器1中调用此函数:

[self.delegate dismissViewController];

这只是一个示例,您可以做一些改进。

是否执行[delegate.window addSubview:view1ViewController];然后显示视图?如果是,之前显示的视图是否仍然存在?它是隐藏的吗?我打错了,应该是[delegate.window addSubview:view1ViewController.view];。这样做的目的是将view1ViewController的视图添加到窗口中。[self.view removeFromSuperview];正在从窗口中删除调用UIViewController的视图。您基本上是在交换它们。不过,您可以使用相同的方法将它们交换回主菜单。在用户按下“主菜单”按钮时调用的任何方法中,您都将从窗口中删除当前视图,并重新添加主菜单视图控制器的视图;然后显示视图?如果是,之前显示的视图是否仍然存在?它是隐藏的吗?我打错了,应该是[delegate.window addSubview:view1ViewController.view];。这样做的目的是将view1ViewController的视图添加到窗口中。[self.view removeFromSuperview];正在从窗口中删除调用UIViewController的视图。您基本上是在交换它们。不过,您可以使用相同的方法将它们交换回主菜单。在用户按下“主菜单”按钮时调用的任何方法中,您都将从窗口中删除当前视图,并重新添加主菜单视图控制器的视图。