基于对UIAlertView的响应,从UITableViewCell有条件地搜索导航

abu*_*ose 6 storyboard uitableview uialertview ios5

我的问题似乎是一个普遍的问题,但似乎无法找到答案.

我有一种情况,当用户点击自定义UITableViewCell时,我想显示一个警报,然后根据对警报的响应,保持在同一视图(用户选择取消)或显示另一个视图(如果用户选择继续).我想使用故事板功能和segues来做到这一点.

怎么会这样呢?你必须以老式的方式做到这一点吗?

T.J*_*.J. 11

@user,只需创建一个旧时尚方式的alertView; 我知道任何故事板功能,以不同的方式做到这一点.故事板可以帮助的是segues.您可以通过编程方式调用segues.随着您的警报视图取消按钮,您可以返回(即什么都不做).对于另一个选项,要显示另一个视图,您可以以编程方式调用segue以转换到所需的视图.如果您在故事板上没有为某些其他原因定义了正确的segue,只需创建一个按钮并使用它来创建segue并为其命名.通过在故事板中单击它来命名segue,并使用属性检查器为其命名(标识符).然后隐藏按钮或将其放在视图之外.我通常在工具栏上放置这些类型的按钮,并使用垫片将它们排除在视图之外.这是一些示例代码:

从警报视图委托调用segue,如下所示:

[self performSegueWithIdentifier: @"done" sender: self];
Run Code Online (Sandbox Code Playgroud)

还要实现此方法来执行任何必要的任务来准备segue:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"done"]) 
    {
        //    [[segue destinationViewController] setManagedObjectContext:self.managedObjectContext];
        //    [[segue destinationViewController] setSelectedClient:selectedClient];
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 8

您可以直接从startingViewController创建segues到多个destinationViewControllers,然后可以以编程方式"执行".您不需要为它们创建任何隐藏按钮,这看起来像是一个黑客.

  • 如果你可以连接两个视图控制器,显然你会这样做.使用幻像按钮的原因是,有时你想要从视图控制器创建一个segue到它自己,而Xcode似乎不允许你这样做. (2认同)