Лично я поступил бы так: сначала назначить предупреждение в заголовочном файле:
UIAlertView *alert;
, затем создать и представить предупреждение в методе tableView:didSelectRowAtIndexPath:
.
alert = [[UIAlertView alloc] init....];
[alert show];
// start the loading process for your data to push to the next view
Затем, чтобы закрыть представление, просто сделайте это в вашем методе viewWillDisappear:animated:
с помощью вызова, подобного следующему:
[alert dismissWithClickedButtonIndex:0 animated:YES];
Это должно гарантировать, что предупреждение будет отклонено до того, как будет представлено следующее представление.Надеюсь, это поможет.Если у вас есть какие-либо вопросы, я с радостью опишу более подробно
РЕДАКТИРОВАТЬ: чтобы отклонить оповещение из другого представления, вам нужно будет создать метод, в котором вы создадите оповещение, чтобы отклонить его.Импортируйте заголовок в представление, к которому он перемещается, найдите родительское представление дочернего элемента, а затем отклоните, когда захотите.Я объясню подробно ниже.Итак, во-первых, создайте метод для отклонения представления от родителя, который я просто буду называть Parent
- (void)dismissAlert {
[alert dismissAlertWithClickedButtonIndex:0 animated:YES];
}
В представлении, к которому вы нажимаете, обязательно поставьте #import "Parent.h"
вверхуфайл реализации.
Теперь осталось только найти представление и вызвать метод.Вы можете изменить место, где это вызывается, но для примера я просто собираюсь запустить таймер в методе viewDidAppear:
в файле Child и перейти оттуда.
- (void)viewDidAppear:(BOOL)animated {
[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(dismiss) userInfo:nil repeats:NO];
}
Затем создать dismiss
method
- (void)dismiss {
// find the Parent view, which is most likely the top view in the navigation stack
// self.parentViewController will be the navigationController
// calling childViewControllers gets the navigation stack, so we get the view from there
[(Parent *)[[self.parentViewController childViewControllers] objectAtIndex:0] dismissAlert];
}
Я проверил это, и оно работает, так что, надеюсь, это поможет вам.Вы можете изменить временной интервал по своему усмотрению.Учитывая, что я не знаю иерархию вашего приложения, трудно сказать, где находится родительский вид по отношению к ребенку, но вы можете поэкспериментировать, чтобы найти его, если это не так.