Cocoa touch 如何在模式视图中等待用户输入时停止执行
我有一个导航控制器,显示一个TableView和一个带有按钮的工具栏。 如果用户按下按钮,将显示带有多个按钮的模式视图。按下其中一个按钮时,将加载一组新数据,并重新加载tableView 在某种情况下,当重新加载一组新数据时,我需要显示一个模式视图,以提醒用户某些情况 这是我最初编写的向用户显示警报的代码:Cocoa touch 如何在模式视图中等待用户输入时停止执行,cocoa-touch,modalviewcontroller,Cocoa Touch,Modalviewcontroller,我有一个导航控制器,显示一个TableView和一个带有按钮的工具栏。 如果用户按下按钮,将显示带有多个按钮的模式视图。按下其中一个按钮时,将加载一组新数据,并重新加载tableView 在某种情况下,当重新加载一组新数据时,我需要显示一个模式视图,以提醒用户某些情况 这是我最初编写的向用户显示警报的代码: - (void) selectEventosListMVCButtonPressed:(NSInteger)button { switch (button) {
- (void) selectEventosListMVCButtonPressed:(NSInteger)button
{
switch (button) {
.
.
.
.
case 3:
// eventos favoritos
// Load Favourites Events
// This is the new data to load
if (!self.eventosFavourites) {
[self loadEventos:kURLEventosCopyFavourites];
}
// Empty the container
[self.eventosListsContainer removeAllObjects];
// Load Favourites Eventos
[self.eventosListsContainer addObject:self.eventosFavourites];
// Reload the view
[self.tableView reloadData];
// Load Expired Events
// If there are some eventosExpired then show alert to user
if (!self.eventosExpired) {
[self loadEventos:kURLEventosCopyExpired];
}
if (self.eventosExpired) {
// There are expired eventes
// Load a modal view to inform the user
ExpiredEventosMVC *expiredView = [[ExpiredEventosMVC alloc] initWithNibName:@"ExpiredEventosMVC" bundle:0];
expiredView.delegate = self;
expiredView.eventos = self.eventosExpired;
[self presentModalViewController:expiredView animated:YES];
[expiredView release];
}
break;
}
[self.modalViewController dismissModalViewControllerAnimated:YES];
[self.modalViewController release];
}
但模态视图从未显示。
要使其正常工作,我应该在向用户显示ExpiredEventosMVC模式视图后等待,单击该视图中的“确定”按钮以关闭该视图并继续流程,但我如何才能做到这一点?您正在向模式控制器显示以下代码行:
[self presentModalViewController:expiredView animated:YES];
然后两行之后立即将其驳回:
[self.modalViewController dismissModalViewControllerAnimated:YES];
您的代码应该在用户按下控制器的一个按钮后(而不是之前)关闭控制器。要执行此操作,请将按钮配置为向控制器发送操作消息,然后从那里调用dismissModalViewControllerAnimated:
顺便说一下,命名存储视图控制器的变量expiredView
可能会导致混淆。考虑<代码> Exchange控制器,<代码> ExpReVIEW控制器< /代码>,或<代码> ExpReVC。(但不是expiredMVC
——这也不是一个好主意。MVC是Model View Controller的缩写——一种设计模式,而不是类。)