我应该在 -initWithNibName:bundle: 与 -viewDidLoad 中设置哪些 UIViewController 属性?

发布于 2024-12-02 19:19:19 字数 890 浏览 4 评论 0 原文

我知道我应该 设置 -initWithNibName:bundle: 中的 >self.title。

  1. self.navigationItem.titleView怎么样?

    由于 self.navigationItem.titleView 似乎仅在加载 self.view 时使用,我想我应该为了节省内存,设置 self.navigationItem.titleView-viewDidLoad 中,并在 -viewDidUnload 中将其置零,例如:

    - (void)viewDidLoad {
        [超级viewDidLoad];
        self.navigationItem.titleView = [[UIImageView alloc] initWithImage:
                                         [UIImage imageNamed:@"logo.png"]];
    }
    
    - (void)viewDidUnload {
        self.navigationItem.titleView = nil;
        [超级viewDidUnload];
    }
    
  2. 怎么样self.navigationItem.backBarButtonItem

I understand that I should set self.title in -initWithNibName:bundle:.

  1. What about self.navigationItem.titleView?

    Since self.navigationItem.titleView seems only to be used when self.view is loaded, I'm thinking I should, to save memory, set self.navigationItem.titleView in -viewDidLoad and nil it in -viewDidUnload, e.g.:

    - (void)viewDidLoad {
        [super viewDidLoad];
        self.navigationItem.titleView = [[UIImageView alloc] initWithImage:
                                         [UIImage imageNamed:@"logo.png"]];
    }
    
    - (void)viewDidUnload {
        self.navigationItem.titleView = nil;
        [super viewDidUnload];
    }
    
  2. What about self.navigationItem.backBarButtonItem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

萧瑟寒风 2024-12-09 19:19:19
  1. -viewDidLoad中设置self.navigationItem.titleView并在-viewDidUnload中将其置零似乎可以正常工作。

  2. 您应该在-initWithNibName:bundle中设置self.navigationItem.backBarButtonItem,因为如果您在没有动画的情况下推送两个视图控制器-viewDidLoad将不会被推送的第一个视图控制器调用。因此,如果该视图控制器在 -viewDidLoad 中设置了 self.navigationItem.backBarButtonItem,它实际上不会被设置,并且第二个视图控制器上的后退按钮将默认为像往常一样第一个视图控制器的标题。

  1. It seems to work OK to set self.navigationItem.titleView in -viewDidLoad and nil it in -viewDidUnload.

  2. You should set self.navigationItem.backBarButtonItem in -initWithNibName:bundle because if you push two view controllers without animation -viewDidLoad will not get called for the first view controller that's pushed. So, if that view controller sets self.navigationItem.backBarButtonItem in -viewDidLoad, it will actually not get set, and the back button on the second view controller will just default to the title of the first view controller as usual.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文