1

我启动以下模态控制器:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];

UIViewController *modal = [storyboard instantiateViewControllerWithIdentifier:@"modalController"];
modal.title = @"Example Title";
[self presentModalViewController:modal animated:YES];

我将标题设置为:

modal.title = @"Example Title";

但这不起作用,任何人都可以帮助我吗?

编辑:我已经用这样的 UINavigationController 包装了我的 ModalView

在此处输入图像描述

4

2 回答 2

1

您正在以一种稍微复杂的方式进行此操作...但是要保持您的范式,您需要呈现navigationController,而不是包含的viewController:尝试这样做后一种方式将实例化 viewController,但此操作不会拉包含的 navController 连同它一起从情节提要中出来。您正在设置 viewController 的 title 属性,但是您没有(自动)方法来显示标题。然而,如果你实例化 navController,它包含的 viewController 确实会随着它的topViewController.

        //give the navigation controller a storyboard id eg "navVC"
    UINavigationController* modalNav = [self.storyboard instantiateViewControllerWithIdentifier:@"navVC"];
    [modalNav topViewController].title = @"Example Title";

        //[self presentModalViewController:modalNav animated:YES];
        //deprecated method, use this instead:
    [self presentViewController:modalNavController 
                       animated:YES
                    completion:nil];
于 2013-03-31T20:51:47.447 回答
1

您必须使用经典的拖放方法在模型控制器中为 UINavigationItem(标题)添加 IBOutlet 属性。

@property (weak, nonatomic) IBOutlet UINavigationItem *navTitle;

然后在 viewDidLoad 函数中设置标题。

- (void)viewDidLoad
{
    [super viewDidLoad];

    // title view
    [self.navTitle setTitle: @"atitle"];
}
于 2013-09-20T13:37:04.230 回答