【问题标题】:navigationbar title not getting set iphone导航栏标题未设置 iphone
【发布时间】:2011-04-23 19:11:30
【问题描述】:

在我的应用程序中,我展示了一个模态视图控制器,如下所示,我无法更改导航栏的标题或其任何属性。

fullListTopCompanies *fullListTopCompaniesInstance = [[fullListTopCompanies alloc] initWithNibName:@"fullListTopCompanies" bundle:nil];

UINavigationController *cntrol = [[UINavigationController alloc] initWithRootViewController:fullListTopCompaniesInstance];

[fullListTopCompaniesInstance setTitle:@"TEST"];


UIBarButtonItem *submit = [[UIBarButtonItem alloc]
                           initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                           target:self
                           action:@selector(displayViewForPosts)];
fullListTopCompaniesInstance.navigationItem.rightBarButtonItem = submit;
[submit release];


[self presentModalViewController:cntrol animated:YES];
[cntrol release];

我尝试实例化应用程序委托并将其导航控制器分配给本地导航控制器实例,但没有用。

导航控制器不知何故无法访问。无法使用“self.navigationitem”访问它。每当我将 modalviewcontroller 与导航控制器一起呈现时,此导航都位于实际导航控制器的下方。

【问题讨论】:

    标签: iphone uinavigationcontroller modalviewcontroller


    【解决方案1】:

    例如,如果您尝试为名为“ABCViewController”的 ViewController 设置导航栏的标题,则添加

    self.Title = @"";

    viewWillAppear方法的ABCViewController中尝试重建并运行。

    希望这会有所帮助。 :)

    【讨论】:

      【解决方案2】:

      每当我将 modalviewcontroller 与导航控制器一起呈现时,此导航就会位于实际导航控制器的下方。

      这个问题是因为在 self 上调用 presentModalViewController:,你应该在 self.navigationController 上调用它,这样导航控制器就不会显示在另一个控制器下方。

      至于为什么不能设置navigationController的属性,我不知道。在我看来还可以。但我希望这是因为您正在设置属性 before viewDidLoad 被 nib-loader 调用。我想我记得很久以前我自己也遇到过这样的问题。

      您应该在UIViewController 子类的viewDidLoad 方法中设置标题等,我认为您的担忧将结束。

      【讨论】:

        【解决方案3】:

        我已经使用 xcode 模板创建了一个简单的基于视图的应用程序,然后我添加了您的代码,它对我有用...

        - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
        
        // Override point for customization after application launch.
        
        // Add the view controller's view to the window and display.
        
        TestViewController *fullListTopCompaniesInstance = [[TestViewController alloc] initWithNibName:@"TestViewController" bundle:nil];
        
        UINavigationController *cntrol = [[UINavigationController alloc] initWithRootViewController:fullListTopCompaniesInstance];
        
        [fullListTopCompaniesInstance setTitle:@"TEST"];
        
        
        UIBarButtonItem *submit = [[UIBarButtonItem alloc]
                                   initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                   target:self
                                   action:@selector(displayViewForPosts)];
        fullListTopCompaniesInstance.navigationItem.rightBarButtonItem = submit;
        
        [window addSubview:viewController.view];
        [window makeKeyAndVisible];
        
        [viewController presentModalViewController:cntrol animated:YES];
        
        [cntrol release];
        [submit release];
        
        return YES;
        

        }

        【讨论】:

          猜你喜欢
          • 2011-01-17
          • 1970-01-01
          • 1970-01-01
          • 2011-01-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-18
          • 2014-12-18
          相关资源
          最近更新 更多