利用VC以编程方式在app delegate中创建

时间:2015-03-27 10:46:32

标签: ios objective-c uiviewcontroller uinavigationcontroller

我使用THTinderNavigationController。使用此导航控制器3可以从appDelegate中以编程方式创建viewControllers(VC)。我只是简单地讨论如何使每个视图控制器链接到我自己的3个不同的VC或替换它们。或者用我在故事板上制作的那些替换它们。

让3个不同的viewControllers替换THTinderNavigationController演示的一次的最佳方法是什么?我确信这很简单但是因为我是一个开始,我发现我自己解决这个问题非常难以捉摸。

在此先感谢大家,非常感谢任何帮助。

这是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;  
}

1 个答案:

答案 0 :(得分:0)

被修改

您是否能够在模拟器中运行此代码而没有任何错误?如果是这样,你做什么时会出现在模拟器上?如果没有,请确保已将示例项目(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];

enter image description here