Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 我应该如何组织一个有三个不同视图且没有选项卡/工具/导航栏的项目?_Iphone_Cocoa Touch_Uikit_Uiviewcontroller_Navigation - Fatal编程技术网

Iphone 我应该如何组织一个有三个不同视图且没有选项卡/工具/导航栏的项目?

Iphone 我应该如何组织一个有三个不同视图且没有选项卡/工具/导航栏的项目?,iphone,cocoa-touch,uikit,uiviewcontroller,navigation,Iphone,Cocoa Touch,Uikit,Uiviewcontroller,Navigation,我在这个项目上花了太多时间走到了死胡同,所以是时候质疑蜂巢思维了: 我正在制作一个简单的iPad游戏,由三个位置组成,当触摸屏幕的某个区域时,用户可以在这三个位置之间导航。这些位置由全屏图像表示,并且有许多不同的动画和内容,因此将每个位置划分为自己的UIViewController是合乎逻辑的 问题是:我应该使用哪些组件来处理位置/控制器之间的导航 UITabbarController:最终在底部没有白色条的情况下将其隐藏起来后,我无法让selectedIndex在视图控制器之间切换 UINav

我在这个项目上花了太多时间走到了死胡同,所以是时候质疑蜂巢思维了:

我正在制作一个简单的iPad游戏,由三个位置组成,当触摸屏幕的某个区域时,用户可以在这三个位置之间导航。这些位置由全屏图像表示,并且有许多不同的动画和内容,因此将每个位置划分为自己的UIViewController是合乎逻辑的

问题是:我应该使用哪些组件来处理位置/控制器之间的导航

UITabbarController
:最终在底部没有白色条的情况下将其隐藏起来后,我无法让
selectedIndex
在视图控制器之间切换

UINavigationController
:内部不允许有多个视图控制器,我有三个要使用的视图控制器。有没有可能把它藏起来并继续使用


我当然可以将所有逻辑塞进一个
UIViewController
,但这显然是错误的。任何建议或解决方案,对于一个正在努力走向职业生涯的新手来说,都将不胜感激

如果我能理解的话,一切的发生就像你有三个视图要分别管理一样。如果是这种情况,您肯定应该有三视图控制器。然后,这些控制器之间的通信应在模型中进行。在这种情况下,可以通过委托使视图控制器了解模型中的更改。如果这些交互变得过于繁重,我建议您创建一个超级控制器(应用程序控制器)来管理模型和三个控制器。

听起来不错,但如何在不使用navigationcontroller或tabbarcontroller的情况下将对UI的控制权交给另一个视图控制器?当然,这取决于应用程序控制器(让我们这样称呼它)在窗口中放置、定位或删除视图。我建议applicationController仅与ViewController通信,而不与其视图通信。然后您将在ViewController中创建方法来操纵其视图。(最好使用[leftViewController moveView:newFrame]比leftViewController.view.frame=newFrame更高)这样你的控制器就可以控制他们的视图发生了什么。谢谢你在这方面的帮助!但我还没有完全理解。在你描述的设置中,我将在每个viewController中有一个TouchsStart的实现。但是如何设置哪个viewController是接收触摸的活动控制器?TouchsStart将被发送到触摸发生的位置的upFrontView,这样你就不必控制它。现在,如果你想在控制器中发生什么事情,你可以使用代理模式在视图和控制器之间进行通信。我开始觉得我需要更多关于你在做什么的详细信息……我在仔细考虑之后又尝试了一次。我要开始了我想要一个单独的UIViewController,三个独立的子控制器代表他们的位置做事情。我想我已经很好地准备好了,并且相信它会工作。感谢您的时间和洞察力:-)