gpt4 book ai didi

ios - UIPopover 与 UINavigationController 和 UITableView : tableView delegates not called

转载 作者:行者123 更新时间:2023-12-01 16:41:33 26 4
gpt4 key购买 nike

我正在尝试显示一个简单的 iPad 弹出框,其中包含一个带有 tableView 的 navigationController。

弹出框 -> 导航 Controller -> View Controller -> 表格 View 。

我确实需要导航 Controller ,因为在触摸单元格时我想推送另一个 View Controller (在同一个弹出框内)。

没有导航 Controller ,一切都很好。
但是,一旦我将 viewController 放入 navigationController 中,tableView 就会停止响应(didSelectRow 不会被调用)。我想我的代表出了点问题,但我就是想不通。

. navigationController 响应良好(我可以点击顶部栏中的按钮)

.单元格中的按钮响应良好。

.如果我按下并按住一个单元格,它会突出显示,但没有被选中。

更新:我刚刚发现,如果我按住单元格至少一秒钟,当我释放它时会调用委托(delegate)。比这还少,它永远不会被调用......???

下面是代码使用:

ModalViewController* controllerWithTable = [[self storyboard] instantiateViewControllerWithIdentifier:identifier];

UINavigationController* navigationController = [[UINavigationController alloc] initWithRootViewController:controllerWithTable];

UIPopoverController* popover = [[UIPopoverController alloc] initWithContentViewController:navigationController];
popover.delegate = self;

[popover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

最佳答案

如果您使用 popoverController 来显示表格 View ,则无需将其嵌入导航 Controller 中,而是使用表格 View 制作不同的 Viewcontroller,然后将其放入 popover Controller 中。我使用它有点像这样。 .

在您的应用程序委托(delegate)中为 UIPopoverController 进行全局引用,
//在你的 Appdelegate.h 文件中声明这个
@property(strong, nonatomic) UIPopoverController *popOverForTableView;

现在在要显示 PopOver View 的 Controller 中使用这个,

 TableViewCOntroller* popoverContent = [[TableViewCOntroller alloc] init];

NSString *identifier=@"tableVC"
popoverContent =[[UIStoryboard storyboardWithName:@"Main"
bundle:nil]
instantiateViewControllerWithIdentifier:identifier];
popoverContent.preferredContentSize = CGSizeMake(330, 280);


AppDelegate *appDelegate=(AppDelegate *)[[UIApplication sharedApplication]delegate];

appDelegate. popOverForTableView = [[UIPopoverController alloc]initWithContentViewController:popoverContent];
appDelegate.popOverForTableView.delegate = self;
appDelegate.popOverForTableView.backgroundColor=[UIColor blackColor];
[appDelegate.popOverForTableView presentPopoverFromRect:self.date.frame inView:self.view permittedArrowDirections:(UIPopoverArrowDirectionUp) animated:YES];

您可以相应地忽略它......,......看看这是否有帮助......

关于ios - UIPopover 与 UINavigationController 和 UITableView : tableView delegates not called,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23858182/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com