我有一个带有标准UIView的应用程序,其中包含一个工具栏。我可以点击工具栏上的一个按钮来打开UIActionSheet,并且能够在那里显示我的文本而没有任何问题。我想要做的是让操作表项显示与我的项目不同的XIB。我已经在相关的头文件和实现文件以及XIB中设置了所有内容,但我需要将点击操作表项的操作链接到显示第二个视图。
这是我到目前为止所做的:
- (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 :(得分:0)
首先修复您的方法名称:您拼错了“dismiss”。如果这是您的实际代码,则当前未调用委托方法。
随访:
好的,我测试了你的代码(有或没有看似不必要的dismissModalViewController ...),它对我有用。
这让我觉得你的大型设置有问题。您是否设置了断点并确保您的代码实际运行?
如果它没有运行(这是我的怀疑),请检查您是否未能为委托传递适当的值:当您设置UIActionSheet时。 (特别是,您是否已将nil作为委托传递?这会导致您所描述的那种无声失败。)
您是否收到编译器/ Clang的任何警告?