ios - 如何将参数传递给导航 Controller 内的弹出 View Controller

标签 ios storyboard uipopovercontroller navigationcontroller

我有一个 iPad 应用程序,在 detailviewcontroller 的导航栏中有一个 splitview 和一个右栏按钮。

此按钮调用由导航 Controller 和两个 TableView 构成的弹出窗口。 如下图所示

enter image description here

由于 Storyboard在图片上很小,我添加了一些解释。 白色 Controller 是 detailViewController(splitviewcontroller 的右侧),它位于导航 Controller 内。白色view右边的三个view从左到右分别是:navigationController, firstTableView, secondTableView。

我的问题是我需要将参数传递给第一个 TableView 以正确配置它。

当 View Controller 共享同一个导航 Controller 时,我常常这样做。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if([[segue identifier] isEqualToString:@"popoverButtonSegue"]){
        MyPopoverFirstTableViewController *popoverFirstTVC = [[MyPopoverFirstTableViewController alloc] init];

        popoverFirstTVC = segue.destinationViewController;
        popoverFirstTVC.property1 = aProperty1;
        popoverFirstTVC.property2 = aProperty2;
    }
}

我的问题是我在执行此操作时遇到错误,因为目标 Controller 不是我的 popoverFirstTableViewController,而是 NavigationController 和导航 Controller 当然没有“property1”和“property2”。

也许这是一个基本问题,但我被困在这里。

当此表位于导航 Controller 内时,如何通过分配我定义的一些属性来配置我的 TableView ?

最佳答案

所有功劳都属于@Michael Kernahan,但只要他不将其作为答案发布,我就会将其作为后续跟进,供寻找相同答案的人使用。

在我的例子中,问题是我分配的目标 Controller 是导航 Controller

popoverFirstTVC = segue.destinationViewController; 

我应该做的是访问那个导航 Controller 的 topViewController。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if([[segue identifier] isEqualToString:@"popoverButtonSegue"]){
        MyPopoverFirstTableViewController *popoverFirstTVC = (MyPopoverFirstTableViewController *)((UINavigationController *) segue.destinationViewController).topViewController;

        popoverFirstTVC.property1 = aProperty1;
        popoverFirstTVC.property2 = aProperty2;
}

关于ios - 如何将参数传递给导航 Controller 内的弹出 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13591559/

相关文章:

ios - 关闭 Popover 并一键打开新的 Popover

iOS WKWebView.scrollView委托(delegate)导致BAD_ACCESS

ios - ZXing Xamarin Forms iOS 白底(无Custom Renderer)

ios - 将 stackview 中的项目在水平轴上彼此靠近对齐

ios - 向 Storyboard添加额外的预览设备 Xcode 10+

ios - 返回时忽略 presentModalViewController

swift - 如何将 MGLAnnotationView 设置为弹出窗口的 sourceView

ios - 为什么 View 的阴影被创建为内部

ios - 如何知道当前的尺码等级以及我的按钮是否显示?

objective-c - 在哪里设置弹出窗口中显示的 View Controller 的大小?