gpt4 book ai didi

iphone - 制作多 View 应用程序的有效方法?

转载 作者:行者123 更新时间:2023-11-29 04:59:40 24 4
gpt4 key购买 nike

我正在制作的应用程序利用多个 View 。例如免责声明 View 、显示答案的 View 等等。到目前为止,这是我一直用来从一个 View 切换到另一个 View 的代码

-(IBAction)swichtogain:(id)sender{
gainview *second = [[gainview alloc]initWithNibName:nil bundle:nil];
[self presentModalViewController:second animated:YES];
[second release];
}

我在教程中找到了这个方法,我想知道这是最好的方法吗?我使用相同的代码从一个 View 来回切换到另一个 View ,例如。

  -(IBAction)swichtoview1:(id)sender{
view1 *view = [[gainview alloc]initWithNibName:nil bundle:nil];
[self presentModalViewController:view animated:YES];
[view release];
}

在 view1 中,如果用户点击后退按钮,则会执行以下代码

  -(IBAction)swichtomainview:(id)sender{

mainview *view = [[gainview alloc]initWithNibName:nil bundle:nil];
[self presentModalViewController:view animated:YES];
[view release];
}

我没有编辑 appdelegate 文件中的任何内容,这是一个基于 View 的应用程序。这种方法会导致它使用更多内存吗?在使用仪器进行事件监视器测试期间,我注意到每次从主菜单转到另一个 View 并返回主菜单时,内存使用量都会变高!还有比这更好的方法吗?另外一个 View 是计算器,因此当用户点击计算按钮时,它会切换到下一个 View ,同时将文本字段更改为答案,下面是代码!

-(IBAction)calculate{
MyClass *setnum = [[MyClass alloc]init];
setnum.grade_num = grade;
setnum.stage_num = stage;
setnum.ex_lym = ex_ly;
setnum.pos_lym = pos_ly;
setnum.er_num = er;
setnum.noderatio = pos_ly/ex_ly;



if(text1.text.length <=0 ||text2.text.length <=0||text3.text.length<=0||text4.text.length<=0||text5.text.length <=0){

UIActionSheet *action = [[UIActionSheet alloc]initWithTitle:@"Incomplete Values" delegate:self cancelButtonTitle:@"Ok" destructiveButtonTitle:nil otherButtonTitles:nil];
[action showInView:self.view];
[action release];

}else{
answer *ans =[[answer alloc]initWithNibName:nil bundle:nil];
[self presentModalViewController:ans animated:YES];

float i = calc_gain(setnum.grade_num, setnum.noderatio, setnum.stage_num, setnum.er_num);
NSString *result = [NSString stringWithFormat:@"%f",i];

ans.answer1.text = result;
ans.bar.hidden = NO;



[ans release];
}
[setnum release];

}

最佳答案

您应该考虑使用提供的容器 View Controller 之一(iPad 上的 UITabBarController、UINavigationBarController 或 UISplitViewController 等)。

您使用presentModalViewController的方式很可能是错误的。其一,调用presentModalViewController 将保留您的 View 。因此,不断分配新的 Controller 并通过presentModalView显示它们的 View 会增加每个导航步骤的内存占用。

一般来说,显示另一个模态视图 Controller 的 View Controller 也负责再次将其关闭。因此,关闭模态视图 Controller 的方法是让所呈现的 Controller 通过委托(delegate)通知其父级,并要求父级关闭(通常在点击“完成”按钮时)。

我什至不确定堆叠 modalViewControllers 是否是受支持的场景,但至少没有在 documentation 中找到任何其他说明。 .

关于iphone - 制作多 View 应用程序的有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7260515/

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