簡體   English   中英

如何在離開表格視圖之前顯示警報?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM