利用 VC 以编程方式在应用程序委托中创建

Utilizing VC create in app delegate Programmatically

我用的是THTinderNavigationController。使用此导航控制器,可以从 appDelegate 中以编程方式创建 3 个 viewControllers(VC)。我只是想知道如何将每个视图控制器 link 变成我自己的 3 个不同的 VC 或替换它们。或者用我在故事板上制作的替换它们。

用 3 个不同的 viewController 替换 THTinderNavigationController 演示中的 viewController 的最佳方法是什么?我确信这很简单,但由于我是初学者,我发现自己解决这个问题是一项非常难以完成的任务。

在此先感谢大家,任何帮助将不胜感激。

这是 appDelegate 的样子。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{

THTinderNavigationController *tinderNavigationController = [[THTinderNavigationController alloc] init];

UIViewController *viewController1 = [[UIViewController alloc] init];
viewController1.view.backgroundColor = [UIColor lightGrayColor];

UIViewController *viewController2 = [[UIViewController alloc] init ];
viewController2.view.backgroundColor = [UIColor whiteColor];

UIViewController *viewController3 = [[UIViewController alloc] init];
viewController3.view.backgroundColor = [UIColor lightGrayColor];

tinderNavigationController.paggedViewControllers = @[
                                               viewController1,
                                               viewController2,
                                               viewController3
                                               ];

tinderNavigationController.navbarItemViews = @[
                                               [[NavigationBarItem alloc] init],
                                               [[NavigationBarItem alloc] init],
                                               [[NavigationBarItem alloc] init]
                                               ];

[tinderNavigationController setCurrentPage:1 animated:NO];

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = tinderNavigationController;
[self.window makeKeyAndVisible];

return YES;  
}

已编辑

您能否运行在模拟器中无误地执行此代码?如果是这样,当你这样做时,模拟器上会出现什么?如果没有,请确保您已将示例项目(THTinderNavigationController.hNavigationBarItem.h)中的所有文件以及 AppDelegate.h.

导入到您的项目中

更新

好的,所以如果你可以 运行 代码就好了,那么要用故事板中的视图控制器覆盖项目中的原始视图控制器,你可以执行以下操作:

1) 确保你的故事板中有一些带有故事板 ID 的视图控制器(见下面的屏幕截图)。

2) 在如下代码中实例化您的自定义视图控制器:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *viewController3 = [storyboard instantiateViewControllerWithIdentifier:@"Orange"];

*请注意,"Orange" 只是我提供给视图控制器的故事板 ID。你可以选择任何你想要的。

3) 确保将新的视图控制器放入 peggedViewControllers 属性:

tinderNavigationController.paggedViewControllers = @[viewController1, viewController2, viewController3];