2012-01-13 98 views
0

我有一个包含工具栏的标准UIView的应用程序。我可以点击工具栏上的按钮来打开一个UIActionSheet,并且能够在那里显示我的文本,没有任何问题。我想要做的是让操作工单显示与我的项目不同的XIB。我已经在相关头文件和实现文件以及XIB中设置了一切,但我需要将点击操作工作表项目的操作链接到显示第二个视图。通过UIActionSheet切换视图

这是我到目前为止有:

- (void)actionSheet:(UIActionSheet *)sheet willDissmissWithButtonIndex:(NSInteger)buttonIndex { 

    if (buttonIndex != [sheet cancelButtonIndex]) { 

     if (buttonIndex == 0) { 

      ABC *secondview = [[ABC alloc] initWithNibName:nil bundle:nil]; 
      [self presentModalViewController:secondview animated:YES]; 
     } 

     if (buttonIndex == 1) { 

      DEF *secondview = [[DEF alloc] initWithNibName:nil bundle:nil]; 
      [self presentModalViewController:secondview animated:YES]; 

     } 

     if (buttonIndex == 2) { 

      GHI *secondview = [[GHI alloc] initWithNibName:nil bundle:nil]; 
      [self presentModalViewController:secondview animated:YES]; 

     } 

    [self dismissModalViewControllerAnimated:YES]; 

    }; 

} 

这将打开我的动作片,并显示所有正确的信息,但攻“ABC”,“DEF”或“GHI”仅关闭动作片就好像我点击取消按钮。我如何设置它以点击“ABC”,“DEF”或“GHI”在我的项目中打开不同的XIB?

回答

0

首先修复您的方法名称:拼写错误“解雇”。如果这是您的实际代码,那么委托方法当前不会被调用。

后续:

OK,我测试你的代码(有或无看似不必要dismissModalViewController ......),它为我工作。

这使我认为你的大型设置有问题。您是否设置了断点并确保您的代码实际上正在运行?

如果它没有运行(这是我的怀疑),请检查您是否未能为委托传递适当的值:当您设置UIActionSheet时。 (特别是,你可能已经通过了零代表吗?这会导致你正在描述的那种沉默的失败。)

你是否从编译器/ Clang收到任何警告?

+0

这绝对是它的一部分。我做了更改,但应用程序的行为没有任何变化。它仍然无法正确地将操作表的水龙头路由到适当的视图。 – Jon 2012-01-15 00:46:46

+0

好的,请参阅我上面的后续评论。 – 2012-01-15 01:15:52

+0

您击中了头部:我的代表被设置为“无”。唯一的问题是 - 如果你不能说出来 - 我甚至不知道我在做什么。我查看了UI委托协议参考的Apple文档,但没有得到任何答案。你有没有机会进一步了解这个? – Jon 2012-01-15 05:10:30