如何在没有xib文件的情况下使用uiviewcontroller

Posted

技术标签:

【中文标题】如何在没有xib文件的情况下使用uiviewcontroller【英文标题】:how to use to uiviewcontroller without xib file 【发布时间】:2014-08-13 09:38:49 【问题描述】:

我有一个关于过渡的问题。 当我们想要转换到下一个UIViewController时,我们使用此代码:

UIViewController* secondViewController = [[UIViewController alloc] initWithNibName:@"SecondViewControllerName" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:secondViewController animated:YES];

当我们要使用此代码添加NavigationController 时:

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

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
ViewController *viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];

UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
self.window.rootViewController = navController;
[self.window makeKeyAndVisible];
return YES;

当我们想使用此代码将UIViewController 添加到另一个UIViewController 时:

UIViewController* secondViewController = [[UIViewController alloc] initWithNibName:@"SecondViewControllerName" bundle:[NSBundle mainBundle]];
[self.view addSubview:secondViewController.view];

现在我想知道如果我的项目中不使用xib 文件该怎么办???

【问题讨论】:

那你在用故事板吗?? @vishnuvarthan 没有我的朋友没有故事板没有 xib 文件 所以你想用一个空的应用程序模板以编程方式做所有事情 @vishnuvarthan 是的,我的朋友请指导我 【参考方案1】:

您可以使用 Storyboard 中的 ViewController

ViewController *controller = (ViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"yourIdentifier"];

或正常创建

// make Layout in viewController - viewDidLoad
ViewController *viewController = [[ViewController alloc] init];

ViewController.m

- (void)viewDidLoad

    [super viewDidLoad];

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0.0, 64.0, 320.0, 24.0)];
    label.textColor = [UIColor blackColor];
    label.text = @"My text";
    [self.view addSubview:label];

    UIButton *button = ...;
    [self.view addSubview:button];




【讨论】:

我的朋友 // 在 vi​​ewController 中做 Layout - viewDidLoad 是什么意思? 你应该在 ViewController 的 viewDidLoad 方法中制作你的布局。 我的朋友我很困惑!!!这段代码:ViewController *viewController = [[ViewController alloc] init];是做布局的代码??? 不!使用此代码您可以创建 ViewController 实例,并且在 ViewController.m 中您必须创建布局(方法 viewDidLoad)。我不知道如何更好地解释它:/ 对不起我的朋友。如何创建布局(方法 viewDidLoad)!!!请指导我!!!

以上是关于如何在没有xib文件的情况下使用uiviewcontroller的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 XIB 文件的情况下以编程方式更新 Xcode 中的 UILabel?

如何在没有 .xib 或故事板文件的情况下向应用程序添加菜单?

如何在没有 Stroybord/Xib 的情况下使用 JTCalendar

如何在没有 xib 的情况下使用 UINavigationController?

iPhone IOS5 Storyboard,如何加载带有自定义 .xib 文件的 UIViewController?

如何在没有 xib 文件的情况下集成 iAD