我仍然在寻找iPhone SDK的方法,我已经遵循了一些很好的教程,但我正试图找到一些简单的解决方案。
现在我想要一个简单的应用程序,它将共享相同的UIViewController。
我在Interface Builder中创建了多个视图,并在Inspector中为它们指定了唯一的名称(Identity视图 - Interface Builder Identity)。
假设我按下按钮并按下按钮时编写了一个动作。我的简单问题是在xcode中,如何以编程方式调用其他视图?
非常感谢
答案 0 :(得分:3)
我建议您在尝试控制多个视图时使用多个视图控制器。将它们包装在UINavigationController中,让您的生活更轻松。
话虽如此,您想在主控制器中创建IBOutlets,并将每个IBOutlet挂钩到您的一个视图中。然后,当你准备好了,你可以
[view1 removeFromSuperview];
[self.view addSubview: view2];
请注意,这预示着您使用第三个单独的视图作为控制器的主视图。
答案 1 :(得分:3)
您的视图控制器具有view
属性。
您可能有两个此view
属性的子视图。我们称之为IBOutlet UIView *
属性subviewA
和subviewB
。
如果按顺序插入它们,那么只需在视图控制器的-bringSubviewToFront:
属性上调用view
方法即可交换它们:
[self.view bringSubviewToFront:subviewB];
同样,将subviewA
带回到前面:
[self.view bringSubviewToFront:subviewA];
如果需要,您还可以为子视图“frame
属性设置动画,相对于彼此移动它们的原点,将它们移入和移出,以及为渐变和其他视图属性设置动画。这是一个更多的工作,但在这个问题上有一个很好的Stack Overflow答案here。
答案 2 :(得分:2)
我也强烈推荐Apress书“开始iPhone3开发”。
我刚刚实现了类似这样的东西,用于分段控件。我在子视图中将一个放在另一个上面,并且分段控制动作设置view1.hidden = YES; view2.hidden = NO;反之亦然,以响应控制状态的变化。
您可能想要查看Interface Builder中的标签栏控制器,因为它会自动为您切换视图而不需要任何代码,至少在您想要用另一个屏幕替换屏幕大小的视图的简单情况下 - 大小的视图,每个都有自己的视图控制器。
答案 3 :(得分:0)
就在它的脸上,这有点奇怪。一般来说,如果1个视图== 1个控制器,这将是最简单的。
您尝试添加子视图的视图(例如,将添加到主视图的控件),还是全屏视图,当用户按下按钮时,这些视图会使现存视图消失?< / p>
答案 4 :(得分:0)
这本书,由Dave和Jeff开始iphone3开发,有一个很好的教程。您需要创建主视图控制器的2个子视图并单独调用它们。