亲爱的 - 我有一个基于标签的应用程序(作为XCode示例应用程序启动)。
一个选项卡用于选择图像(UIImagePickerController) - 按预期工作。 另一个选项卡用于在包含所选图像的UIImageView上显示CoreGraphics。这是在自定义UIView的drawRect:Method中完成的。
当选择新图像时,我需要重置UIView上的界面。
目前我的UIView中有一个-(IBAction)resetAll:(id)sender
方法 - 当从同一视图上的按钮调用时,所有内容都会按预期重置。
但是,当我从ViewController.m文件的viewWillAppear方法调用resetAll方法时:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
TabBarEgAppAppDelegate *delegate = (TabBarEgAppAppDelegate *)[[UIApplication sharedApplication] delegate];
if(delegate.newphotopicked){
[myView resetAll:nil];
delegate.newphotopicked = NO;
}
resetAll方法中的NSLog被触发但参数(例如button.hidden = YES;
)没有被设置。
这是因为UIView在某种程度上被TabBarViewController隐藏了吗?当标签更改时,我怎么能重置我的视图(UIView没有调用viewWillAppear吗?)。非常感谢你给我你的时间!
米@
为了澄清,ViewController在.h中有以下内容:
MyView *myView;
<。> <。>
- (void)viewDidLoad {
myView = [[MyView alloc] initWithFrame:CGRectZero];
[myView resetAll:nil];
调用与应用程序中任何位置的按钮和调用具有相同的效果,包括UIView(MyView)本身。
我现在知道我已经严重联系或分类(请帮忙)。
米@
答案 0 :(得分:0)
这是仅在第一次显示视图选项卡时发生,还是每次都发生?出口物体可能尚未创建,因此是零。您可以在NSLog调用所在的调试器中对此进行验证。如果这是真的,那么如果你将resetAll函数移动到viewDidAppear
,那么一切都应该有效。