仍然难以正确地在视图之间交换

时间:2010-08-30 14:49:48

标签: iphone ios4

我有一个使用大量视图的应用程序,并且在它们之间进行交换非常尴尬所以我认为制作一些会自动转到编号页面的代码,加载适当的视图,然后根据该视图执行任何需要执行的设置。我想出了以下内容。我设置的测试页面交换为OK,甚至正确设置委托,但它不会对页面内容执行任何设置操作,例如更改其包含的标签上的文本或轻弹切换切换到ON。我一步一步完成了程序,所有的命令都在执行,但结果并没有显示在最终的屏幕上。

currentMenu是一个UIViewController指针,我瞄准当前正在使用的ViewController,以便我知道稍后要解除什么。 clusterMenu是ClusterMenu类型的特定视图控制器,我将其用作要切换到的示例页面。

我也觉得资源可能无法通过此代码正确释放,但是一旦我弄清楚为什么它首先没有正确设置,我可以稍后处理。

以下是代码:

UIViewController *vanishing = currentMenu;

if (page == 3){
    clusterMenu = [[ClusterMenu alloc] initWithHeader:clusterMap.header];
    [clusterMenu setDelegate:self];
    clusterMenu.editSwitch.on = clusterMap.editMode;
    [clusterMenu changeEditStatus];
    currentMenu = clusterMenu;
}

[UIView transitionFromView:vanishing.view toView:currentMenu.view duration:0.5 
                options:UIViewAnimationOptionTransitionCurlUp 
                completion:^(BOOL done){[vanishing release];}];

2 个答案:

答案 0 :(得分:0)

好问题。鉴于发布的代码有限,我很难指导您进行具体的更改。相反,我建议您查看Apple样本项目(下面的链接),它可以帮助您。您可以使用Apple架构,只需在视图控制器中进行鞋拔,即可获得页面交换行为。

http://developer.apple.com/iphone/library/samplecode/PageControl/Introduction/Intro.html

我希望这会有所帮助。对不起,我无法给你一个单行修复。安德鲁

答案 1 :(得分:0)

将初始化命令放在view的init方法中,等待它被调用。不要停止,因为这会阻止视图加载,只需退出当前方法。

在Cocoa中,你不告诉操作系统做什么,你等着它告诉你。