[英]How to show an alert before leaving the table view.?
我正在使用一個詳細的主應用程序。 在主部分中列出了記錄,詳細信息部分顯示了每個記錄的詳細信息。 詳細信息部分是一個表格視圖,我們可以在其中編輯每個記錄。 問題是“ 在編輯記錄時,如果我點擊另一側的記錄,則我對原始記錄所做的任何更改都會丟失,並且新的記錄詳細信息會顯示在表格視圖中” ...任何人都可以告訴我我如何在“顯示新記錄的詳細信息”之前顯示要求“ 保存或取消 ”的警報。
我對原始記錄所做的任何更改都將丟失
開發應用程序時的一個普遍規則是
切勿松動用戶的工作
因此,最好只是保存用戶所做的更改。
但是,讓我們來看您的實際問題:
誰能告訴我如何顯示警報
我認為您的意思是那些更改看起來像帶有兩個按鈕的推送通知。 您可以使用UIAlertView創建它們。 然后,您可以在警報的代表中確定按下了哪個按鈕,然后可以決定如何繼續操作。 只需查看UIAlertView的文檔-這非常簡單:)
嘗試這個,
-(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;
}
}
在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
}
}
希望這可以幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.