gpt4 book ai didi

iphone - 如何将多个自定义 View Controller 与导航 Controller 一起使用?

转载 作者:行者123 更新时间:2023-11-28 23:13:49 25 4
gpt4 key购买 nike

基本上,我在 MainWindow.xib 中有两个 View Controller ,可以通过单击导航 Controller 中的条形按钮来查看它们。我希望这两个 View Controller 通过它们自己的 header 、实现和 xib 文件与 MainWindow.xib 分开,并且仍然使 MainWindow.xib 内部的导航 Controller 在它们中工作。

为了更好地理解它,请看下面的代码:

非常感谢!

TestAppDelegate.h

#import <UIKit/UIKit.h>

@interface TestAppDelegate : NSObject <UIApplicationDelegate>
{
//Navigation Controller
IBOutlet UINavigationController *navigationController;


//View Controllers
UIViewController *viewController;
UIViewController *viewController2;
UIViewController *viewController3;

}

@property (nonatomic, retain) IBOutlet UIWindow *window;

//Navigation Controller
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;


//View Controllers
@property (nonatomic, retain) IBOutlet UIViewController *viewController;
@property (nonatomic, retain) IBOutlet UIViewController *viewController2;
@property (nonatomic, retain) IBOutlet UIViewController *viewController3;


- (IBAction)next;
- (IBAction)next2;


@end

TestAppDelegate.m

#import "TestAppDelegate.h"

@implementation TestAppDelegate

@synthesize window = _window;

//Navigation Controller
@synthesize navigationController;

//View Controllers
@synthesize viewController;
@synthesize viewController2;
@synthesize viewController3;


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.

//Navigation Controller
[self.window addSubview:[navigationController view]];
[self.window makeKeyAndVisible];
return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application
{

}

- (void)applicationDidEnterBackground:(UIApplication *)application
{

}

- (void)applicationWillEnterForeground:(UIApplication *)application
{

}

- (void)applicationDidBecomeActive:(UIApplication *)application
{

}

- (void)applicationWillTerminate:(UIApplication *)application
{

}

- (void)dealloc
{

[viewController release];
[viewController2 release];
[viewController3 release];

[navigationController release];
[_window release];
[super dealloc];
}


- (IBAction)next {
[navigationController pushViewController:viewController2 animated:YES];
}


- (IBAction)next2 {
[navigationController pushViewController:viewController3 animated:YES];
}


@end

在 MainWindow.xib 内部:

http://i52.tinypic.com/10xa45f.png

最佳答案

我通常不碰 MainWindow.xib。我建议如下:

  1. 通过转到 File > New > New File 创建一个 MainController,它将成为 UIViewController 子类的 MainView。这将为每个 ViewController 创建一个 .h/.m 和 nib 文件。为您的应用程序添加您想要的任何 UI。例如,添加两个按钮并将这些按钮连接到 MainController 中的 IBActions。这应该分别在您的 MainController.{h/m} 中声明和实现。

  2. 然后以同样的方式创建另外两个 ViewController。

  3. 这些 IBAction 的主体应该创建您的 ViewController 的实例,然后推送它们。

它看起来像这样:

YourViewController *yvc = [[YourViewController alloc] init];
[self.navigationController pushViewController:yvc animated:YES];
[yvc release];

最后,您必须在 AppDelegate 中推送 MainController 并将您的 NavigationController 添加到 View 中。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
MainViewController *mvc = [[MainViewController alloc] init];
UINavigationController *unvc = [[UINavigationController alloc] init];
[unvc pushViewController:mvc animated:NO];
[mvc release];
[self.window addSubview:unvc.view];
[self.window makeKeyAndVisible];
return YES;
}

关于iphone - 如何将多个自定义 View Controller 与导航 Controller 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7297129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com