我有一个显示TableView的Navigaton Controller和一个带按钮的工具栏。 如果用户按下按钮,则显示具有多个按钮的模态视图。按下其中一个按钮后,将加载一组新数据并重新加载tableView。
在一定条件下重新加载一组新数据时,我需要显示一个模态视图,以提醒用户某些情况。
这是我原来编写的代码,向用户显示警告:
- (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模式视图显示给用户后单击该视图中的OK按钮以关闭它并继续流程,但是我该怎么做?
答案 0 :(得分:1)
您将使用以下代码行演示模态控制器:
[self presentModalViewController:expiredView animated:YES];
然后立即解雇它两行:
[self.modalViewController dismissModalViewControllerAnimated:YES];
在用户按下其中一个按钮之后,您的代码应该关闭控制器,而不是之前。为此,请配置按钮以将操作消息发送到控制器,然后从那里调用dismissModalViewControllerAnimated:
。
顺便说一下,命名存储视图控制器expiredView
的变量可能会导致混淆。考虑expiredController
,expiredViewController
或expiredVC
。 (但不是expiredMVC
- 这也不是一个好主意.MVC是Model-View-Controller的首字母缩写 - 一种设计模式,而不是一个类。)