【问题标题】:UIPopovercontroller in UISplitViewControllerUISplitViewController 中的 UIPopovercontroller
【发布时间】:2014-03-27 02:18:25
【问题描述】:

我的 detailviewcontroller 被称为 myDetailVC ,而 tableVC 只是 myDetailVC 一侧的一个表。

在 myDetailVC 中,我有一个应该显示 popoverviewcontroller 的按钮。但是,当我按下它时它会崩溃。

在我的 .h 文件中:

@property (strong, nonatomic) UIPopoverController *masterPopOverController;

和.m:

- (IBAction)goToPDF:(id)sender
{


        viewPDFViewController *MPPWV =[[viewPDFViewController alloc] initWithNibName:nil bundle:nil];

        self.masterPopOverController = [[UIPopoverController alloc] initWithContentViewController:MPPWV];

        [self.masterPopOverController presentPopoverFromRect:[sender frame] inView:[sender superview] permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
        [self.masterPopOverController setPopoverContentSize:CGSizeMake(100, 100) animated:NO];


    }

在我的 xib 中,一切都连接得很好,因为我通过将其推送到视图控制器而不是弹出框来测试它。有人可以帮我解决这个问题吗?

【问题讨论】:

  • 能成功推送到viewPDFViewController吗?
  • @aaron 是的,我可以推送到 vewPDFVC,效果很好,但后来我发现我没有做正确的事情,它无法返回到 detailvc...

标签: objective-c uisplitviewcontroller uipopovercontroller


【解决方案1】:

首先,看起来您正在使用一个没有任何内容的视图控制器加载它:

viewPDFViewController *MPPWV =[[viewPDFViewController alloc] initWithNibName:nil bundle:nil];

尝试指定一个 Nib 名称(如果有的话)。您可能没有该视图控制器的 NIB。如果是这种情况,您可能有一个指定的初始化器-init 方法,您应该调用它。这样做而不是打电话给-initWithNibName:

其次,看起来您并没有保留要加载到弹出窗口中的视图控制器。它们可能需要强引用。尝试通过属性(或 ivar)保留它:

@property (nonatomic, strong) viewPDFViewController * MMPPWV;

然后,当您通过self 访问它时:

self.MPPWV = [[viewPDFViewController alloc] initWithNibName:nil bundle:nil];

【讨论】:

  • 我会试试这个,让你知道会发生什么!
  • 刚刚添加了另一个建议。
  • 它有效!谢谢,我也改变了 initWithContentViewController:self.MPPWV
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-25
  • 2011-08-04
相关资源
最近更新 更多