Ios 嵌入式导航控制器

Ios 嵌入式导航控制器,ios,xcode,xcode4.2,xcode4.3,navigationcontroller,Ios,Xcode,Xcode4.2,Xcode4.3,Navigationcontroller,我刚刚将我的Xcode从4.2更新到4.3.3,我一直遇到一个问题 是否可以在单视图应用程序中添加导航控制器,因为当我尝试将导航控制器嵌入控制器时,什么都没有发生。我希望有两个视图控制器通过一个按钮连接到第二个控制器,并有一个导航栏连接到第一个视图控制器 我想不出任何其他方法来连接视图控制器,请帮助我 任何想法 如果不想添加导航控制器,可以使用presentViewController在现有视图控制器之间切换,从第一个视图控制器切换到第二个视图控制器,然后使用dismissViewControl

我刚刚将我的Xcode从4.2更新到4.3.3,我一直遇到一个问题 是否可以在单视图应用程序中添加导航控制器,因为当我尝试将导航控制器嵌入控制器时,什么都没有发生。我希望有两个视图控制器通过一个按钮连接到第二个控制器,并有一个导航栏连接到第一个视图控制器

我想不出任何其他方法来连接视图控制器,请帮助我 任何想法

  • 如果不想添加导航控制器,可以使用
    presentViewController
    在现有视图控制器之间切换,从第一个视图控制器切换到第二个视图控制器,然后使用
    dismissViewControllerAnimated
    返回

  • 假设您使用的是NIB(否则,您只需在情节提要中使用嵌入命令),如果您想添加一个导航控制器与NIB一起使用,您可以相应地更改您的应用程序委托

  • 因此,您可能有一个应用程序委托,上面说:

    //  AppDelegate.h
    
    #import <UIKit/UIKit.h>
    
    @class YourViewController;
    
    @interface AppDelegate : UIResponder <UIApplicationDelegate>
    
    @property (strong, nonatomic) UIWindow *window;
    
    @property (strong, nonatomic) YourViewController *viewController;
    
    @end
    
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        // Override point for customization after application launch.
    
        self.viewController = [[YourViewController alloc] initWithNibName:@"YourViewController" bundle:nil];
        self.window.rootViewController = self.viewController;
    
        [self.window makeKeyAndVisible];
        return YES;
    }
    
    您可以将其更改为:

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        // Override point for customization after application launch.
    
        //self.viewController = [[YourViewController alloc] initWithNibName:@"YourViewController" bundle:nil];
        //self.window.rootViewController = self.viewController;
    
        YourViewController *viewController = [[YourViewController alloc] initWithNibName:@"YourViewController" bundle:nil];
        self.navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
        self.window.rootViewController = self.navigationController;
    
        [self.window makeKeyAndVisible];
        return YES;
    }
    
    完成后,您现在可以使用
    pushViewController
    从一个NIBs视图控制器导航到另一个NIBs视图控制器,并使用
    popViewControllerAnimated
    返回。在
    viewDidLoad
    中,您还可以使用
    self.title=@“我的标题”控制视图导航栏中显示内容的命令。您可能还希望更改NIB中的“顶栏”属性,以包括导航栏模拟指标,这样您就可以布局屏幕并对其外观有很好的了解:


    显然,如果你有一个非ARC项目,那些带有视图控制器alloc/init的行也应该有一个
    autorelease
    (当你查看你的应用程序代理时这会很明显)。

    我想你使用了.xib文件。使用.storyboard文件。
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        // Override point for customization after application launch.
    
        //self.viewController = [[YourViewController alloc] initWithNibName:@"YourViewController" bundle:nil];
        //self.window.rootViewController = self.viewController;
    
        YourViewController *viewController = [[YourViewController alloc] initWithNibName:@"YourViewController" bundle:nil];
        self.navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
        self.window.rootViewController = self.navigationController;
    
        [self.window makeKeyAndVisible];
        return YES;
    }