MFMailComposeViewController 实际上是一个导航控制器?

发布于 2024-10-04 07:49:52 字数 332 浏览 3 评论 0原文

当我尝试推送 MFMailComposeViewController 时,它说我无法推送导航控制器?!嗯...不知道。

基本上我所有的视图控制器实际上都是 CustomUIViewController 的子类,它自动从导航栏中删除标题视图(因为我在导航栏中有一个徽标)。

呈现我的 MFMailComposeViewController 模式会将标题放回那里,因为我无法将其子类化 CustomUIViewController (或者我可以吗?我不知道?)。

所以我真的需要一种方法从 MFMailComposeViewController 中删除标题视图。

谢谢

汤姆

When I try to push my MFMailComposeViewController it says I can't push navigation controllers?! Hmm... dunno about that.

Basically all my view controllers are actually subclasses of CustomUIViewController which automatically removes the title view from the navigation bar (as I have a logo in the navigation bar instead).

Presenting my MFMailComposeViewController modally puts the title back in there because I can't make it subclass CustomUIViewController (or can i? I dunno?).

So I really need a way to remove the title view from the MFMailComposeViewController.

Thanks

Tom

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

谈下烟灰 2024-10-11 07:49:52

一些简单的选择:

  • 也将 MFMailComposeViewController 子类化。
  • 不要子类化 CustomUIViewController;重写 UIViewController 类别中的一些方法(icky)。
  • 隐藏 UINavigationBar 类别中的标题项

A few easy options:

  • Subclass MFMailComposeViewController too.
  • Don't subclass CustomUIViewController; override some methods in a category of UIViewController (icky).
  • Hide the title item in a category of UINavigationBar
暖阳 2024-10-11 07:49:52

考虑到标题视图包含取消和发送按钮,我不确定您是否想要删除它。 更改导航栏中的实际标题

您可以尝试使用mailController.navigationItem.titleView = myLogo;

,这应该将导航项的中心区域设置为您的徽标而不是某些文本。

Considering the title view contains the Cancel and Send buttons, I'm not sure you'd want to remove it. You could try changing the actual title in the navigation bar with

mailController.navigationItem.titleView = myLogo;

Which should set that center area of the nav item to be your logo instead of some text.

荒人说梦 2024-10-11 07:49:52

虽然更好地控制外观会很好,但我不认为有一个干净的方法。当你无法改变它时,我认为你应该隐藏它:

[[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjects:  [NSArray arrayWithObjects:[UIColor clearColor], nil] forKeys:[NSArray arrayWithObjects:UITextAttributeTextColor, nil]]];

Although it would be nice to get more control over the appearance, I don't think there is a clean method. When you can't change it, I think you should hide it:

[[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjects:  [NSArray arrayWithObjects:[UIColor clearColor], nil] forKeys:[NSArray arrayWithObjects:UITextAttributeTextColor, nil]]];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文