我正在使用主详细信息应用程序。在主部分中列出记录,详细部分显示每个记录的详细信息。详细信息部分是一个表格视图,我们可以在其中编辑每条记录。问题是“在编辑记录时,如果我点击另一侧的记录,我对原始记录所做的任何更改都会丢失,新记录的详细信息会显示在表格视图中”...... 谁能告诉我我如何在“显示新记录详细信息”之前显示要求“保存或取消”的警报..
问问题
205 次
3 回答
0
我对原始记录所做的任何更改都将丢失
开发应用程序的一个常见规则是
永远不要丢失用户的工作
因此,最好只保存用户更改的内容。
但是,让我们直接回答您的实际问题:
谁能告诉我如何显示警报
我认为您的意思是那些看起来像带有两个按钮的推送通知。您使用 UIAlertView 创建它们。然后在警报的委托中,您可以确定按下了哪个按钮,您可以决定如何继续。只需查看 UIAlertView 的文档 - 它非常简单 :)
于 2012-10-16T13:04:07.147 回答
0
尝试这个,
-(void)tableView:(UITableView *)tableView1 didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:LString(@"ISCO_FLOW_CALC") message:LString(@"DELETE_MESSAGE") delegate:self cancelButtonTitle:LString(@"CANCEL") otherButtonTitles:LString(@"SAVE"), nil];
alert.tag=11;
[alert show];
[alert release];
}
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
if(buttonIndex==1 && alertView.tag==11)
{
//your save data action;
}
if(buttonIndex==0 && alertView.tag==11)
{
//your Cancel data action;
}
}
于 2012-10-16T13:04:12.417 回答
0
在 MasterViewController 中保留对您的 DetailViewController 的引用,例如。在您的 MasterViewController.h 中:
DetailViewController *detailVC;
将此引用设置为您最近在 didSelectRowAtIndexPath 中的 DetailViewController 并在显示新的 detailVC 之前始终检查它是否不为零
DetailViewController *controller=[[DetailViewController alloc] init]; //Or similar
if (detail){
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Save or Cancel" message:@"Save or Cancel" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Save",nil];
[alert show];
}
else{
detailVC=controller;
//Show controller
}
现在在用户点击 UIAlertView 的按钮后显示新的 detailViewController:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex==0) { //Tapped cancel
//show detailVC
}
else{ //Tapped save
//save
//Show detailVC
}
}
希望这可以帮助
于 2012-10-16T13:09:29.407 回答