我正在开发一个应用程序,显示随机选择的图像,触摸后会发生变化 我正在从viewDidAppear呈现一个模态视图,它作为菜单。
显然,每当在主视图上加载新图像时, 重复调用viewDidAppear,因此菜单模式视图会不断弹出。 我在viewDidAppear中放置presentModalView的原因是因为模态视图必须在主视图之前的最开始出现,而不是从主视图的触摸触发器出现。 我曾尝试在其他地方提出模态视图,但没有真正起作用。
任何建议?
以下是我在主视图上的viewDidAppear, 但是这里的信息不多......
-(void)viewDidAppear:(BOOL)animated
{
NSLog(@"viewDidAppear");
[self presentModalViewController:modalView animated:YES];
}
我的应用程序会在每次触摸时不断重新加载随机图像。
答案 0 :(得分:2)
viewDidAppear。然后显示模态视图,使视图消失。当模态视图消失时,您的视图会重新出现,因此您再次调用viewDidAppear。泡沫,冲洗,重复。
听起来你想在你的对象上设置一个标志,这样你就可以忽略后续的viewDidAppear调用。
答案 1 :(得分:1)
在您的init方法中将属性添加到UIView子类初始化为false ...
@interface RandomImageView : UIView {
BOOL hasPresentedModalMenuView
}
@property(assign) BOOL hasPresentedModalMenuView;
然后在viewDidAppear方法中检查属性是否为false。如果是,则显示视图并将属性设置为TRUE。
- (void)viewDidAppear {
if (!self.hasPresentedModalMenuView) {
// Present view.....
.....
self.hasPresentedModalMenuView = TRUE;
}
}
这样可以防止多次显示模态菜单视图。