使用模态视图设置标题不起作用

时间:2013-03-31 19:49:38

标签: iphone ios objective-c

我启动了以下模态控制器:

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

enter image description here

3 个答案:

答案 0 :(得分:1)

你会以一种稍微复杂的方式解决这个问题......但是为了保持你的范例,你需要提供 navigationController ,而不是包含 viewController :尝试要做到这一点,后一种方式将实例化viewController,但此操作不会将包含navController与它一起拉出故事板。您正在设置viewController的title属性ok,但您没有(自动)方式来显示标题。然而,如果你实例化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];

答案 1 :(得分:1)

您必须在模型控制器中为UINavigationItem(标题)添加一个IBOutlet属性,并使用经典的拖放功能。丢弃方法。

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

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

- (void)viewDidLoad
{
    [super viewDidLoad];

    // title view
    [self.navTitle setTitle: @"atitle"];
}

答案 2 :(得分:-1)

您需要使用 UINavigationItem 属性设置标题。

Swift Code:

self.navigationItem.title = "Bar Title"