MFMessageComposeViewController设置UINavigationItem titleView

时间:2011-09-26 21:48:30

标签: ios

我在覆盖MFMessageComposeViewController导航项的标题视图时遇到问题。这是代码:

MFMessageComposeViewController *messageViewController = [[MFMessageComposeViewController alloc] init];
messageViewController.body=@"SMS Body";
CGRect frame = CGRectMake(0, 0, 100.0, 45.0);
UILabel *label = [[UILabel alloc] initWithFrame:frame];
label.text=@"Title";
messageViewController.navigationItem.titleView=label;
[label release];
[self.navigationController presentModalViewController:messageViewController animated:YES];
[messageViewController release];

我也尝试过:     messageViewController.navigationController.navigationItem.titleView =标签;

我还应该指出,这适用于iOS 4,在iOS 5中我使用了新的setTitleTextAttributes方法,该方法效果很好。

思想?

1 个答案:

答案 0 :(得分:0)

我相信这种半黑客应该产生预期的效果。由于我们知道MFMessageComposeViewControllerUINavigationController的子类,因此您实际看到的视图必须由私有控制器类管理。您应该能够修改该控制器导航项以实现您想要的目标。

messageViewController.topViewController.navigationItem.titleView = label;

在我的测试中,此使用了titleView。如果你只是尝试设置标题,它将工作几秒钟,但然后重新回到电子邮件的标题。与任何其他类型的UIKit黑客一样,这可能会在任何时候停止工作,并且它可能仅适用于特定的操作系统版本。