用于表格视图的iPhone ModalViewController按钮打开?

时间:2009-11-23 21:47:11

标签: iphone model-view-controller

应用说明:我有一个UIWebview和一个工具栏。工具栏上的按钮应显示模态表视图,但不会。

工具栏有四个按钮:

上一页:转到上一个网站

下一步:转到下一个站点(这两个站点与默认的goForward和goBack方法不同)

菜单:显示一个带有所有可用站点的TableView的modalViewController(站点将限制为下一个和上一个按钮循环的站点链接数组)

刷新:刷新当前网站

应用程序有四个主要类/文件

WebAppDelegate.h和.m

ListViewController.h和.m(其xib中有Table View,填充.m中的表的代码是模态视图控制器)

只有一个警告,没有错误。

警告:'WebAppDelegate'可能不会代表'-presentModalViewController:animated:'

当我运行程序时,一切都很好,直到我单击“菜单”按钮。我收到此运行时错误

[WebAppDelegate presentModalViewController:animated:]: unrecognized selector sent to instance

以下是“菜单”按钮的代码,该按钮当前位于WebAppDelegate.m

-(IBAction)menu:(id)sender {
ListViewController *aListView=[[ListViewController alloc] initWithNibName:@"ListViewController" bundle:[NSBundle mainBundle]];
[self setListController:aListView];
aListView.modalTransitionStyle=UIModalTransitionStyleCoverVertical;
[self presentModalViewController:aListView animated:YES];
[aListView release];
}

有关导致应用程序崩溃的原因以及模式表视图无法显示的原因的任何想法?

2 个答案:

答案 0 :(得分:4)

错误消息告诉您问题的确切原因 - 您正在向不响应该选择器的对象发送选择器。

[self presentModalViewController:aListView animated:YES];
在这种情况下,

self在您的WebAppDelegate实例中,它可能是NSObject的子类,而不是UIViewController。 presentModalViewController:animated:是UIViewController上的一个方法,因此如果要以模态方式呈现另一个视图控制器,则需要将该消息发送到当前显示的任何视图控制器(或者可能是导航控制器)。

不要忽略编译器警告 - 你发出的警告可能会告诉你......

'WebAppDelegate' may not respond to '-presentModalViewController:animated:'

......这又是你的问题。

答案 1 :(得分:1)

[self.navigationController presentModalViewController:aListView animated:YES];