Дорогие все - у меня есть приложение на основе вкладок (запущено как приложение примера XCode).
Одна вкладка используется для выбора изображения (UIImagePickerController) - работает как задумано.
Другая вкладка используется для отображения CoreGraphics поверх UIImageView, содержащего выбранное изображение. Это делается в drawRect: метод пользовательского UIView.
Мне нужно сбросить интерфейс в UIView при выборе нового изображения.
В настоящее время у меня есть метод -(IBAction)resetAll:(id)sender
в моем UIView - когда он вызывается с кнопки на том же представлении, все сбрасывается, как предполагалось.
ОДНАКО, когда я вызываю метод resetAll из метода viewWillAppear файла ViewController.m:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
TabBarEgAppAppDelegate *delegate = (TabBarEgAppAppDelegate *)[[UIApplication sharedApplication] delegate];
if(delegate.newphotopicked){
[myView resetAll:nil];
delegate.newphotopicked = NO;
}
NSLog в методе resetAll срабатывает, но параметры (такие как button.hidden = YES;
) не устанавливаются.
Это потому, что UIView каким-то образом скрыт TabBarViewController? Как еще я могу сбросить свой вид при изменении вкладки (UIView не вызывает viewWillAppear, делает это?). Большое спасибо за то, что уделили мне время!
M @
Просто чтобы уточнить, ViewController имеет следующее в .h:
MyView *myView;
в .м
- (void)viewDidLoad {
myView = [[MyView alloc] initWithFrame:CGRectZero];
Вызов [myView resetAll:nil];
имеет тот же эффект, что и кнопки и вызовы в любом месте приложения, ВКЛЮЧАЯ сам UIView (MyView).
Теперь я знаю, что соединился или плохо классифицирован (пожалуйста, помогите).
M @