我在覆盖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方法,该方法效果很好。
思想?
答案 0 :(得分:0)
我相信这种半黑客应该产生预期的效果。由于我们知道MFMessageComposeViewController
是UINavigationController
的子类,因此您实际看到的视图必须由私有控制器类管理。您应该能够修改该控制器导航项以实现您想要的目标。
messageViewController.topViewController.navigationItem.titleView = label;
在我的测试中,此仅使用了titleView。如果你只是尝试设置标题,它将工作几秒钟,但然后重新回到电子邮件的标题。与任何其他类型的UIKit黑客一样,这可能会在任何时候停止工作,并且它可能仅适用于特定的操作系统版本。