如何处理UIActionSheet的转换

时间:2013-09-05 13:23:46

标签: iphone ios objective-c delegates uiactionsheet

场景:我正在尝试实施类似于iPhone的通讯录图书应用以删除联系人。在iPhone的联系人应用程序中,要删除联系人,可以转到“所有联系人”场景并单击联系人(例如“测试删除”),然后单击“编辑”按钮并向下滚动以查找'删除'按钮。单击“删除”按钮后,将显示带有“删除”和“取消”按钮的UIActionSheet,可以单击“删除”删除联系人,“联系人”应用程序将自动返回“所有联系人”场景。

问题:在我的应用中,我添加了一个“删除”按钮和启动UIActionSheet的代码:

UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"Cancel" destructiveButtonTitle:@"Delete" otherButtonTitles:nil];

并添加委托:

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
NSLog(@"actionSheet is called: clicked button - %ld, %@", (long)buttonIndex, [self.parentViewController description]); }

这些都运作正常。就像“联系人”应用程序一样,这是在“编辑”场景中完成的,用于删除项目,我想从“编辑”场景转换回“所有项目”场景,正在编辑的项目从“全部”中删除物品的场景。我不知道如何进行转换 - 这就是问题所在。

问题:如何实现委托(或其他任何内容),以便我的应用程序就像iPhone的联系人应用程序,从“编辑”场景转换回“所有联系人”场景?< / p>

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

尝试使用以下代码

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
    if (buttonIndex == actionSheet.destructiveButtonIndex) /// here you can get destructiveButton tapped
    {
         [self.navigationController popToRootViewControllerAnimated:YES]; // and got to previous viewController;
    }
}