Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone ModalViewController用于按按钮打开表格视图?_Iphone_Model View Controller - Fatal编程技术网

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

iPhone ModalViewController用于按按钮打开表格视图?,iphone,model-view-controller,Iphone,Model View Controller,应用程序描述:我有一个UIWebview和它下面的工具栏。工具栏上的按钮应该会显示模式表视图,但它不会 工具栏有四个按钮: 上一个:转到上一个站点 下一步:转到下一个站点(这两种方法不同于默认的goForward和goBack方法) 菜单:显示一个modalViewController,其中包含所有可用站点的表视图(站点将被限制为一系列站点链接,下一个和上一个按钮将循环通过这些链接) 刷新:刷新当前站点 应用程序有四个主要类/文件 WebAppDelegate.h和.m ListViewCont

应用程序描述:我有一个UIWebview和它下面的工具栏。工具栏上的按钮应该会显示模式表视图,但它不会

工具栏有四个按钮:

上一个:转到上一个站点

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

菜单:显示一个modalViewController,其中包含所有可用站点的表视图(站点将被限制为一系列站点链接,下一个和上一个按钮将循环通过这些链接)

刷新:刷新当前站点

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

WebAppDelegate.h和.m

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

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

警告:“WebAppDelegate”可能无法报告到“-presentModalViewController:动画:”

当我运行程序时,一切正常,直到我单击菜单按钮。我收到此运行时错误

[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];
}

关于是什么导致应用程序崩溃以及为什么不显示模式表视图,您有什么想法吗?

错误消息准确地告诉您问题所在-您正在向一个对象发送一个选择器,而该对象没有响应该选择器

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

不要忽略编译器警告-您收到的警告可能会告诉您

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

…同样,这正是您的问题。

错误消息准确地告诉您问题所在-您正在向一个对象发送一个选择器,而该对象没有响应该选择器

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

不要忽略编译器警告-您收到的警告可能会告诉您

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

…这也是你的问题。

不知道他在哪里暗示他有导航控制器。如果有什么问题的话,我愿意打赌他没有,并且给出一个可能会让人困惑的答案也无济于事,因为它没有得到充分的解释。这起到了作用,现在出现了一个新的运行时错误(没有其他编译时错误或警告):“由于未捕获的异常‘NSInternalInconsistencyException’终止应用程序,原因:”-[UITableViewController loadView]加载了“ListViewController”nib,但未获取UITableView。“”表视图代码中出现了一些错误,但至少正在进行中。SBrocket是正确的,因为我没有导航控制器。我使用self.listController,这可能仍然是错误的方法。不确定他在哪里暗示他有导航控制器。如果有什么,我愿意打赌他没有导航控制器,而且它没有sn无法给出一个可能令人困惑的答案,因为它没有得到充分的解释。这起作用了,现在出现了一个新的运行时错误(没有其他编译时错误或警告):“由于未捕获的异常而终止应用程序'nsInternalInconsistencException',原因:'-[UITableViewController loadView]加载了“ListViewController”“nib但没有获得UITableView。”“表视图代码中出现了一些错误,但至少正在进行中。SBrocket是正确的,因为我没有导航控制器。我使用了self.listController,这可能仍然是错误的方法。
[self.navigationController presentModalViewController:aListView animated:YES];