Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 已加载笔尖,但';视图';没有设置出口_Ios_Cocoa Touch_Interface Builder_Xib - Fatal编程技术网

Ios 已加载笔尖,但';视图';没有设置出口

Ios 已加载笔尖,但';视图';没有设置出口,ios,cocoa-touch,interface-builder,xib,Ios,Cocoa Touch,Interface Builder,Xib,我在我的项目中添加了一个新的nib文件,并尝试加载它 但是,当我单击工具栏图标(该图标应该将我带到我创建的视图中)时,我会看到一个nsinternalinconsistenceexception,并显示以下消息: 由于未捕获异常而终止应用程序 “NSInternalInconsistencyException”,原因:'-[UIViewController _loadViewFromNibNamed:bundle:]加载了“…”nib,但未设置视图出口 所以我打开了我的nib文件,我看到视图中没

我在我的项目中添加了一个新的nib文件,并尝试加载它

但是,当我单击工具栏图标(该图标应该将我带到我创建的视图中)时,我会看到一个
nsinternalinconsistenceexception
,并显示以下消息:

由于未捕获异常而终止应用程序 “NSInternalInconsistencyException”,原因:'-[UIViewController _loadViewFromNibNamed:bundle:]加载了“…”nib,但未设置视图出口


所以我打开了我的nib文件,我看到视图中没有设置引用出口。但是,我尝试单击“新引用出口”的圆圈并将其拖动到文件的所有者,但它不允许我…我需要做什么才能使视图显示?

未设置视图标识-类标识。在将其设置为适当的类后,问题得到了解决。

你们是对的,但由于我是新来者,我花了一点时间才弄清楚所有的步骤。以下是对我有效的方法:

  • 打开导致问题的XIB文件
  • 单击左栏上的文件所有者图标(顶部,看起来像一个黄色框)
  • 如果看不到右侧的侧边栏,请单击工具栏中“视图”上方的第三个图标。这将显示右侧的侧边栏
  • 在右侧边栏中,单击第四个选项卡——看起来有点像报纸的选项卡
  • 在顶部的“自定义类”下,确保类是应与此视图相对应的ViewController的名称。如果没有,请输入它
  • 在右侧边栏中,单击最后一个选项卡——看起来像一个带箭头的圆
  • 你应该看到“outlets”下面有“view”。将它旁边的圆圈拖到左侧栏上的“视图”图标上(底部的一个,看起来像一个白色正方形,有一个很厚的灰色轮廓)
  • 保存xib并重新运行

刚刚花了一个多小时试图找出为什么从nib启动视图控制器时未在视图控制器中设置我的视图属性。请记住调用“[super initWithNibName…””在视图控制器的initWithNibName中。

我的问题是由于类文件夹中有一个没有视图集的重复nib造成的。xcode似乎在为生成选择一个nib,然后在下次生成项目时选择另一个。刚刚删除了另一个。看起来不错。Doh!

我也有同样的问题,我的问题是我添加了另一个本地化(英语)到ViewControllers nib,这样我的带有本地化德语的应用程序就找不到带有本地化英语的nib!!希望这对任何人都有帮助!

对我来说,这个问题是由调用
initWithNibName:bundle:
引起的。我正在使用nib文件中的表视图单元格来定义位于
表视图上的条目表单ave a view,挂接到一个视图是没有意义的。相反,如果我调用
initWithStyle:
方法,然后从其中加载nib文件,那么事情就会按预期进行。

我遇到了相同的问题,但要求的解决方案略有不同。在这种情况下,问题是文件所有者的类,而不是类要设置此选项,我必须单击Interface Builder窗口左下角的“向后播放”图标,然后出现一些选项,将文件所有者、第一响应者和视图的特征隔离开来。单击第一个图标(一个透明的大框),使我能够按照上面的建议设置其自定义类。

我刚刚在我的项目中解决了这个问题。大型项目,两个文件。一个是“ReallyLargeNameView”,另一个是“ReallyLargeNameViewController”

基于上面选择的第二个答案,我决定我应该清理我的build.Nada,但我仍然怀疑XCode(因为我有两个相同的类,应该抽象它们,但是呃…),所以一个在工作,一个没有。文件的所有者名称被复制和粘贴,出口被重新隐藏,XCode重新启动,仍然没有任何内容

所以我删除了类似的命名类(这是一个视图)。很快,新的错误“outlet inside not Hocked”字面上是“webView not key value”之类的…基本上说是“Visual Studio更好”。总之…我删除了较小的命名文件,然后砰的一声,它工作了

XCode被类似的命名文件弄糊涂了。而且项目太大,需要重新启动一点,这可能是它的一部分

希望我有一个比“XCode很混乱”更专业的答案,但是现在,XCode变得很混乱。就像我帮助一个小孩一样,我不使用它。它现在可以工作了,:)如果上述方法不能解决任何问题,应该对其他人有利


始终记得清理构建(通过删除模拟器)

我通常可以通过重新创建文件所有者和视图之间的连接来修复它。控制从文件所有者到视图的拖动(在IB中),并从弹出菜单中选择“视图”。

在我的项目中出现了相同的错误,但原因不同。在我的例子中,我的自定义UITableViewController类中有一个名为“View”的IBOutlet设置。我知道“视图”很特别,因为它是基类的一个成员,但我不认为视图(不同的情况)也会是一个问题。我猜Cocoa的某些区域不区分大小写,加载xib可能就是其中之一。所以我刚刚将它重命名为DefaultView,现在一切都好了。

选择文件所有者,然后打开identity Inspector,给出它对应的类名。如果上述方法都不起作用,但仍然无法看到视图出口,则将新的引用出口连接提供给文件的所有者,然后才能看到视图出口。单击视图出口,在视图出口和文件所有者之间建立连接。运行应用程序,这样可以正常工作。

我也遇到了同样的问题,但需要不同的解决方案。本例中的问题是文件所有者的类未连接到xib文件。

在我的示例中,视图未在xib中查看。 在xib中,视图为siz
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:@"MySettingsViewController" bundle:nibBundleOrNil];
}
        PTFilterUserVC *aFilterUserVC = [[PTFilterUserVC alloc] initWithNibName:@"FilterVC" bundle:nil];

        //OPTIONAL.This is how 'I' am interested in present the view controller.
        [self.navigationController pushViewController:aFilterUserVC animated:YES];
-(void)initCheckView{

   CheckView *pCheckViewCtrl = [CheckView instance];

   pCheckView = [pCheckViewCtrl view];

   [[self view]addSubview:pCheckView];

   [pCheckViewCtrl performCheck];        

}
+(CheckView *)instance{
    static CheckView *pCheckView = nil;
    static dispatch_once_t checkToken;

    dispatch_once(&checkToken, ^{
        pCheckView = [[CheckView alloc]initWithNibName:@"CheckView" bundle:nil];
        if ( pCheckView){
            [pCheckView initLocal];
            **[pCheckView loadView];**
        }
    });

    return pCheckView;

}
required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        Bundle(for: self.classForCoder).loadNibNamed("SampleView", owner: self, options: nil)
        addSubview(contentView)
        contentView.frame = self.bounds
        contentView.autoresizingMask = [.flexibleHeight, .flexibleWidth]
    }

- (id)init {
   self = [super init];
   if (self) {
      CustomController *controller = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass(className) owner:self options:nil];
   } return self;
}
CustomController *controller = [[CustomController alloc] init];
- (id)init {
   self = [super init];
   if (self) {
      CustomController *controller = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass(className) owner:self options:nil];
      [controller viewDidLoad];
      self = controller;
   } return self;
}