我正在使用主详细信息应用程序。在主节中列出了记录,详细部分显示了每个记录的详细信息。详细信息部分是一个表格视图,我们可以在其中编辑每条记录。问题是“在编辑记录时,如果我点击另一侧的记录,我在原始记录上所做的任何更改都将丢失,新记录详细信息将显示在表格视图中”...... < /强> 任何人都可以告诉我如何在“显示新记录详细信息”之前显示要求“保存或取消”的提醒 ..
答案 0 :(得分:0)
我对原始记录所做的任何更改都将丢失
开发应用程序的一个常见规则是
从不放松用户的工作
因此,保存用户更改的内容可能只是最好的主意。
但是让我们来看看你的实际问题:
任何人都可以告诉我如何显示警报
我认为你的意思是那些看起来像是带有两个按钮的推送通知。 您可以使用UIAlertView创建它们。 然后在警报的代表中,您可以确定按下了哪个按钮,然后您可以决定如何继续。只需查看UIAlertView的文档 - 它非常简单:)
答案 1 :(得分: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;
}
}
答案 2 :(得分:0)
在MasterViewController中保留对DetailViewController的引用 例如。在你的MasterViewController.h中:
DetailViewController *detailVC;
在didSelectRowAtIndexPath中将此引用设置为最近的DetailViewController,并在显示新的detailVC之前始终检查它是否为nil
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
}
}
希望这有帮助