【问题标题】:Call Xib Class from Storyboard从 Storyboard 调用 Xib 类
【发布时间】:2016-12-10 03:25:47
【问题描述】:

我有一个基于故事板的项目

我需要调用一个基于 Xib 的 UIViewController 类。

如何从情节提要中调用 Xib 类,反之亦然?

【问题讨论】:

  • 检查我的答案 iphonemaclover

标签: objective-c xcode storyboard xib


【解决方案1】:

我在 Storybboard 中有 3 个控制器。ViewController 和 ThirdViewController。SecondViewController 是 XIB 部分。

首先我从 Storyboard 调用 XIB

ViewController.m

#import "ViewController.h"
#import "SecondViewController.h"
@interface ViewController ()

@end

@implementation ViewController 


- (IBAction)actionGoXIB:(id)sender
{
  SecondViewController *secondVC = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];
  [self.navigationController pushViewController:secondVC animated:YES];
}

现在我从 XIB 调用 Stoyboard

如果你想实现这一点,首先转到 Storyboard 点击 ThirdViewController

点击->身份检查器

然后点击 -> 身份

现在在 Identity 中将 Storyboard ID 设置为 ThirdViewController 部分

请看下面的截图

SeconViewController.m

#import "SecondViewController.h"
#import "ThirdViewController.h"

@interface SecondViewController ()

@end

@implementation SecondViewController

- (IBAction)actionGoStoryboard:(id)sender
{
  UIStoryboard *mainStoryBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
  ThirdViewController *thirdVC = [mainStoryBoard instantiateViewControllerWithIdentifier:@"ThirdViewController"];
  [self.navigationController pushViewController:thirdVC animated:YES];
  // [self presentViewController:thirdVC animated:YES completion:nil];
}

【讨论】:

  • 如果需要使用 presentViewController 怎么办?不是导航控制器?
  • 您可以使用当前视图控制器不是问题。但不要与推送和呈现到视图控制器混合。如果您同时使用,请设置并让位于单独的视图控制器。如果您想要使用推送进行导航,将其用于一个视图控制器,如果您想呈现视图控制器,请使用来自同一视图控制器的另一个视图控制器。
猜你喜欢
  • 2013-11-04
  • 2013-08-26
  • 1970-01-01
  • 2015-04-29
  • 1970-01-01
  • 2018-10-27
  • 2011-12-09
  • 2017-10-20
  • 1970-01-01
相关资源
最近更新 更多