我使用以下代码调出视图
-(IBAction) openSomeView{
SomeView *sv = [[SomeView alloc]initWithNibName:@"SomeView" bundle:nil];
[self presentModalViewController:sv animated:NO];
[sv release];
}
如何检测此视图是否已经创建,如果已经创建,那么现在只显示它创建一个新对象?
由于
答案 0 :(得分:1)
您不能使用此代码创建多个实例,因为您以模态方式呈现视图控制器。
否则,您可能会在班级中保留一个成员变量,并将其与nil进行核对。
编辑:或者您可以实施'Singleton'设计模式,如果这是您搜索的含义。
答案 1 :(得分:1)
首先在 @interface
中声明SomeView *sv;
你可以查一下
-(IBAction) openSomeView{
if(sv==nil)
sv = [[SomeView alloc]initWithNibName:@"SomeView" bundle:nil];
[self presentModalViewController:sv animated:NO];
[sv release];
}
答案 2 :(得分:0)
我的应用程序中有几个重量级的视图控制器。现在我正在处理这种情况如下:
将MyViewController保存到appDelegate
在“openSomeView”方法中我正在检查MyViewController是否已经创建,如果没有 - 创建它:
-(IBAction) openSomeView {
MyAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
if ( !appDelegate.myViewController ) {
appDelegate.myViewController = [[SomeViewController alloc] initWithNibName:@"SomeViewController"
bundle:nil];
}
[self presentModalViewController:appDelegate.myViewController animated:NO];
}