我在重写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=label;
我还应该指出,这是针对iOS 4的,在iOS 5中,我使用了新的setTitleTextAttributes方法,它工作得很好。
有什么想法?
发布于 2011-09-30 01:21:31
我相信这种半套话应该会产生预期的效果。因为我们知道MFMessageComposeViewController是UINavigationController的子类,所以您实际看到的视图必须由私有控制器类管理。您应该能够修改控制器导航项目,以实现您想要的功能。
messageViewController.topViewController.navigationItem.titleView = label;在我的测试中,这只适用于titleView。如果你只是尝试设置标题,它将工作几秒钟,但随后会被覆盖回电子邮件的标题。与任何其他类型的UIKit黑客一样,这可能会在任何时候停止工作,并且它可能只在特定的操作系统版本上工作。
https://stackoverflow.com/questions/7561747
复制相似问题