【发布时间】:2011-05-30 14:01:57
【问题描述】:
我正在为 iPhone 编写代码。我的第一个屏幕只有一个带有文本菜单的按钮。当用户单击此按钮时,下一个屏幕将出现多个导航栏。每个导航栏都有自己的文本信息,这些信息在单击任何导航栏后被选中。
我应该如何为 iPhone 设计它?请给我概念。我应该采取多种观点吗?如果我有多个视图,我将如何隐藏和显示按钮单击事件?
提前致谢。
【问题讨论】:
我正在为 iPhone 编写代码。我的第一个屏幕只有一个带有文本菜单的按钮。当用户单击此按钮时,下一个屏幕将出现多个导航栏。每个导航栏都有自己的文本信息,这些信息在单击任何导航栏后被选中。
我应该如何为 iPhone 设计它?请给我概念。我应该采取多种观点吗?如果我有多个视图,我将如何隐藏和显示按钮单击事件?
提前致谢。
【问题讨论】:
您必须调整您的用户界面以符合 Apple 希望应用程序的工作、外观和感觉 - 或制作您自己的自定义视图控制器。即使这样,您也可能无法获得您想要的确切行为。
我最热门的建议是查看 appstore 上的类似应用,看看它们是如何导航的。
我没有从你的描述中得到一个画面,但似乎你想要所谓的“向下钻取”。最好使用 tableViews 来完成。
您不能在同一个“屏幕”上拥有多个导航控制器;它在 iPhone 上不是这样工作的。相反,您拥有的是一个单一的导航控制器,它控制视图的推送。您根据用户做出的选择决定要推送哪个子视图,导航控制器会处理与用户的其余交互,让他或她在视图之间导航。
示例结构:
Window-based app
+-MainWindow.xib
| +-First view with button
| +-UINavigationController
+-tableview1.xib
+-tableview2.xib
+-any more views you need.
使应用程序委托<UINavigationControllerDelegate> 并声明navCt *UINavigationController,并在Interface Builder 中连接它。然后,您可以编写一个 pushVC 方法,该方法将 UIViewController *vc 作为参数。它做了一个[navCt pushViewController:vc animated:YES];
将按钮连接到 IBAction,然后调用应用委托中的方法[PushVC myVC],其中 myVC 指的是应用中的任何视图控制器,在本例中为表视图 1。
在这个表中,在didSelectRow...事件上可以用同样的方法推送子视图表视图2。
如果您不确定 iPhone 应用程序设计,我认为这是最少的代码。不管怎样,我希望它能提供一些想法。
【讨论】:
您应该阅读有关 UINavigationController、UITabBarController、UIViewController 的信息。
你几乎总是做一个视图公关。视图控制器。
【讨论】: