使用 Objective C 更改在文本字段中输入的文本的导航栏标题

Change navigation bar title from text entered in a text field with Objective C

我希望导航栏中页面顶部的标题根据输入到特定文本字段中的文本而改变。我会通过单独的 UINavigationController 还是在 UIViewController 中执行此操作,如果是这样,那将如何工作?

您不需要单独的UINavigationController;你可以用

设置标题
self.navigationItem.title = titleTextField.text;

如果将视图控制器设置为 UITextField 的委托,并实现此方法:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    if (textField == titleTextField) {
        self.navigationItem.title = [textField.text stringByReplacingCharactersInRange:range
                                                             withString:string];
    }
    return YES;
}

您将获得实时更新的标题。 (请记住,此方法在 之前被调用 ,而 textField.text 实际上发生了变化,这就是其中有一个 stringByReplacingCharactersInRange:withString: 调用的原因。)