首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >prepareForSegue和UIActionSheet

prepareForSegue和UIActionSheet
EN

Stack Overflow用户
提问于 2012-06-02 04:01:54
回答 3查看 1.7K关注 0票数 0

在我的应用程序中,当用户点击一个按钮时,它会调用一个prepareForSegue。应用程序需要检查状态,然后提示用户是否要覆盖或删除。问题是它会在显示UIActionSheet之前加载下一个视图控制器。如何在调用prepareForSegue之前强制UIActionSheet出现?这是我对prepareForSegue的逻辑;

代码语言:javascript
复制
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

    if ([[segue identifier] isEqualToString:@"mySegue"]) {

        //Check Logic removed for simplicity

        if ([myCheck count] > 0){


            UIActionSheet *actionSheet = [[UIActionSheet alloc]
                                          initWithTitle:@"Save?"
                                          delegate:self
                                          cancelButtonTitle:@"Delete"
                                          destructiveButtonTitle:@"Save"
                                          otherButtonTitles:nil];
            [actionSheet showFromToolbar:self.navigationController.toolbar];


        }

    }

}

这是行动说明书;

代码语言:javascript
复制
- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
{
if (buttonIndex == [actionSheet cancelButtonIndex])
{

    //Delete logic removed

    }else {
    //Save logic removed

}
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-02 04:11:37

你不可能在一段时间内做到这一点。当您获得应该触发它的按钮索引时,您必须在您的操作表处理程序中手动加载视图控制器。这意味着现在触发段的任何东西都必须断开连接,并指向将创建并显示您的行动单的IBAction。prepareForSegue旨在允许您在显示目标视图控制器之前在其上设置参数。当您到达prepareForSegue时,段已经设置好了。在这一点上,没有返回/取消/延迟段的执行。

诚挚的问候。

票数 1
EN

Stack Overflow用户

发布于 2012-12-30 04:54:57

我发现可以从操作表执行Segue,只要segue来自View控制器,并且这里的Identifier就是一个例子。

代码语言:javascript
复制
- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    if (buttonIndex == [actionSheet cancelButtonIndex]) return;

    if (buttonIndex == 0) {

        [self performSegueWithIdentifier:@"visitWeb" sender:self];


    }
    if (buttonIndex == 1) {
        if ([MFMailComposeViewController canSendMail])
        {

这可能不是正确的方式,因为我是一个新手,但是对于我在StoryBoard上的模式视图控制器,它似乎可以做到这一点

票数 1
EN

Stack Overflow用户

发布于 2012-06-02 05:38:58

创建动作单是一个异步事件,不会阻塞段。你需要在你的行动单上触发segue。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10856643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档