【问题标题】:Best way to use navigation controller for uipopoverview将导航控制器用于 uipopoverview 的最佳方式
【发布时间】:2013-08-23 08:17:56
【问题描述】:

我想从popoverview 推送到另一个视图。为此,我有一个导航控制器到那个弹出窗口。而且它的工作正常。

问题出现在第二个视图中。为了允许用户发送电子邮件,我展示了一个邮件编辑器。但我得到了两个导航控制器。

这是第一个popoverview的代码:

SettingsVC *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"SettingsVC"];
vc.delegate = self;
UINavigationController *naviCon = [[UINavigationController alloc]initWithRootViewController:vc];

self.settingsPopover = [[UIPopoverController alloc] initWithContentViewController:naviCon];

CGRect frame = CGRectMake(974.f, 36.f, 0, 0);

 self.settingsPopover.popoverContentSize = CGSizeMake(300, 250);
[self.settingsPopover presentPopoverFromRect:frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

【问题讨论】:

  • 尝试在弹出框内以模态方式呈现邮件编辑器
  • 如何在弹出框内显示邮件编辑器? @铍
  • [self presentViewController:mailComposer animated:YES completion:{}];
  • 使用了相同的代码,但我在主视图而不是 popoverview 中获取 mailcomposer
  • 因为您需要不在主视图中调用它 - 您必须在 在弹出框内容中进行调用。我猜这是一个SettingsVC。在我的示例中,self 表示将显示新模态控制器的位置。

标签: ios objective-c uinavigationcontroller uipopovercontroller


【解决方案1】:

当我需要类似的东西时,我从 ViewController 调用了 MFMailComposeViewController,它调用了 PopoverController(父 ViewController),并且还在该 ViewController 中包含了委托等。 我在 PopoverViewController 的 ContentViewController 中定义了一个协议,它在需要调用 MFMailComposeViewController 时通知父 ViewController。 一切都完美无缺...希望对您有所帮助

【讨论】:

  • 当我调用 MFMailComposeViewController 时,我在其他视图中遇到了同样的问题。如果我没有在弹出窗口中使用导航,它的工作正常,否则我会得到两个导航控制器
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-17
  • 2011-10-17
  • 1970-01-01
  • 2020-07-14
  • 2015-01-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多