创建在启动时不显示的导航控制器

时间:2011-07-16 15:31:07

标签: iphone objective-c xcode uiviewcontroller uinavigationcontroller

我想做这个简单的事情:创建一个uinavigationcontroller,但在启动时不显示。假设我想要一个带有“Go”按钮的欢迎屏幕,该按钮指向uinavigationcontroller。在我看到的所有示例中,它看起来就像导航控制器一样。我应该怎么做呢?

谢谢!

3 个答案:

答案 0 :(得分:2)

如果“显示”是指使用没有可见足迹的导航控制器,那很容易。只需在根视图控制器中执行此操作:

// Root
- (void)viewWillAppear:(BOOL)animated
{
    [self.navigationController setNavigationBarHidden:YES animated:animated];
}

对于子视图控制器,您需要执行类似操作,以便在出现时显示导航栏。

// Child
- (void)viewWillAppear:(BOOL)animated
{
    [self.navigationController setNavigationBarHidden:NO animated:animated];
}

对于具有主菜单的应用程序,这是一种非常常见的技术,您不希望在主菜单视图中显示导航栏。

答案 1 :(得分:1)

在viewcontroller中显示go隐藏导航栏和其他显示导航栏

[self.navigationController setNavigationBarHidden:YES];

希望这会有所帮助

答案 2 :(得分:1)

显示导航控制器视图的机制在-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;方法的app委托中进行。在那里添加NC作为窗口的rootViewController 如果要显示另一个,只需将自定义视图控制器设置为代替NC,然后在按下按钮时调用的操作方法中切换两个视图控制器(用NC替换第一个自定义视图控制器)。登记/> 假设myCustomController定义了一个名为UIButton的{​​{1}}属性:

touchButton

现在在你的app中写下一个动作方法:

// in the app delegate
-(BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    //self.window.rootViewController = self.navigationController;
    [self.myCustomController.touchButton addTarget:self
                                            action:@selector(switchVC)
                                  forControlEvents:UIControlEventTouchUpInside];
    self.window.rootViewController = self.myCustomController;
    [self.window makeKeyAndVisible];
    return YES;
}