gpt4 book ai didi

Iphone UIView 切换 : Previous view's subviews polluting newly switched-to view

转载 作者:行者123 更新时间:2023-11-28 23:16:43 25 4
gpt4 key购买 nike

我已经在切换 UIView 方面工作了一段时间,并且正在尝试一个基本的 UIView 切换,而不使用 UINavigationController。我研究了 UINavigationControllers,但我一直在努力解决下面的问题,所以我想全面探索它。

我的项目组织是:

MainViewController.h/.m    -> viewDidLoad: This method runs a NSTimer to update self.view with a few bits and bobs.

ConfigView.h/.m: -> viewDidLoad: nothing - just an idle view.

MainViewController.xib -> Main window NIB

ConfigView.xib -> ConfigView NIB

我在 MainViewController.m 中有以下方法在 UIButton 按下事件时执行:

- (IBAction)switchToConfigView:(id)sender {

if(self.configViewController == nil) {
ConfigView *cv = [[ConfigView alloc] initWithNibName:@"ConfigView" bundle:nil];
self.configViewController = cv;
[cv release];
}

[self.view addSubview:configViewController.view];

}

现在,当我切换到 ConfigView 时, View 确实显示了,但 viewDidLoad: from MainViewController 似乎仍在执行,导致两个 View 有效合并。从代码中,我可以看出情况显然如此,因为实际的 View 切换本身是在 MainViewController 上下文中执行的,正如您所见,只是一个 subview 。

我的问题是,在通过向其中添加另一个 subview 来切换 View 时,如何巧妙地隐藏/暂停 MainViewController 中的所有操作?我的猜测是这是不可能的,或者更确切地说,需要大量的腿部工作才能更好地应用其他一些方法。我怀疑我需要从 ConfigView.h/.m 实现实际的切换,但我可能错了。

如果您能对上述内容有所启发,那就太棒了。

谢谢

瑞士奶酪。

最佳答案

我的建议是:

1) 有一个基本的、空的 View ;

2) 为其添加一个 subview ;这将是您实际的第一个 View ;

3)当你想切换时,从基础 View 中移除第一个 subview ,并添加第二个作为 subview ;

4) 当你想切换回去时,移除第二个并将第一个作为 subview 添加到基础 View 中;

您可以轻松处理任意数量的 View 。它有效。

或者,您可以隐藏 View 而不是删除它。

关于Iphone UIView 切换 : Previous view's subviews polluting newly switched-to view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6045821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com