ios导航栏标题 - ios设置导航栏标题




加载的笔尖,但'视图'出口没有设置 (17)

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

但是,当我点击应该带我到创建的视图的工具栏图标时,我得到一条带有消息的NSInternalInconsistencyException

由于未捕获异常'NSInternalInconsistencyException',原因:' - [UIViewController _loadViewFromNibNamed:bundle:]加载了“...”笔尖,但未设置视图插口。

所以我打开了我的笔尖文件,我发现没有设置参考插口。 但是,我尝试单击并将“新引用出口”的圆圈拖到文件所有者,但它不会让我......我需要做什么才能让我的视图显示出来?


我曾遇到同样的问题,同时意外删除xib引用并再次添加它。我只是通过在Files所有者和视图之间建立连接来解决此问题。还确保您的FilesOwner的自定义类是您期望的viewController。


你们是对的,但是因为我是一个新人,我花了一点时间才弄清楚所有的步骤。 以下是对我有用的东西:

  • 打开导致问题的XIB文件
  • 点击左侧栏上的文件所有者图标(顶部,看起来像一个黄色框)
  • 如果您没有看到右侧边栏,请点击工具栏中“查看”上方的第三个图标。 这将显示右侧边栏
  • 在右侧边栏中,点击第三个标签 - 看起来有点像报纸
  • 在顶部的“自定义类”下,确保Class是应与此视图相对应的ViewController的名称。 如果不是,请输入它

  • 在右侧边栏中,点击最后一个标签 - 看起来像一个带箭头的圆圈
  • 你应该看到它下面有“视图”的“网点”。 将其旁边的圆圈拖到左栏上的“视图”图标(底部,看起来像一个灰色轮廓较粗的白色方块

  • 保存xib并重新运行

刚刚花了超过一小时试图找出为什么我的视图属性没有设置在我的视图控制器启动它从笔尖。 记得在视图控制器的initWithNibName中调用“[super initWithNibName ...]”。


在我的情况下,*** ViewController类中的指定初始化程序- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil被实现,所以即使当我调用其他初始化程序初始化该对象时,指定的初始化程序也会叫做 。

所以为了解决这个问题,检查- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil也是一个正确的方法。


如果您尝试了所有内容,但仍然遇到此错误,请尝试从头开始重新创建类文件,但请记得选中“同时创建XIB文件”复选框。 这将自动链接分别创建这些文件时未链接的几个项目。 创建完成后,您可能会将所有内容剪切并粘贴到新的XIB上,并且应该可以正常工作。

我在Swift中分别创建文件时发现这个问题。


对于任何使用xib方法创建UIView并遇到此问题的人,您都会注意到在连接检查器菜单下没有“查看”插口。 但是,如果将文件所有者自定义类设置为UIViewController,然后您将看到“视图”出口,您可以将CMND连接到出口到CustomView。


对我来说,它发生在什么时候

  • 我有一个与Nib文件关联的ViewController类(.mm / h)
  • 这个ViewController的UIView必须作为子视图加载到另一个视图上,

  • 我们会打电话给这样的

    -(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;

}

这里loadView缺少,,,加入这一行解决了我的问题。


对我来说,问题是由调用initWithNibName:bundle:引起的。 我使用nib文件中的表格视图单元格来定义坐在tableViews上的输入表单。 因为我没有看法,所以勾选其中一个是没有意义的。 相反,如果我调用initWithStyle:方法,并从那里,我加载nib文件,然后事情按预期工作。


我也有同样的问题,我的问题是我添加了一个其他本地化(英语)到ViewControllers笔尖,所以我的本地化德语应用程序无法找到与本地化英语的笔尖! 希望这可以帮助任何人!


我今晚用Swift UIViewController子类碰到了类似的东西。 在这种情况下,上述修补程序都没有工作,但重新排序我的代码有一点。 具有子类扩展的Net-net发生在子类的定义本身在同一文件中之前似乎混淆了XCode,尽管编译正确; 修正是在子类定义之后放置扩展。

我已经在这个类似问题的答案中发布了详细信息。


我想第二个Stephen J.有些时候X Code会让你感到困惑。 我刚刚有过一段时间玩过UI的经历,并且曾多次添加和删除网点。 这些网点不会再连线。 我从来没有弄清楚具体原因(我尝试了上述所有解决方案),并且我只需删除NIB并从头开始重新创建它,事实上在它工作之前必须为NIB使用不同的名称。 (XCode 4.6.1)浪费了几个小时。


我有与XCode 4.6.3相同的问题。 我已经开始使用一些名为MySettingsView.h.m文件,但是删除了它们以支持MySettingsViewController.h ,但尽管尝试了大部分提到的提示,但它仍然保持错误,

2013-07-05 11:48:17.205 MyApp [39024:c07] ***由于未捕获异常'NSInternalInconsistencyException',原因:' - [UIViewController _loadViewFromNibNamed:bundle:]加载了“MySettingsView”笔尖,但视图插座没有设置。“

它显然仍然“困惑”,试图加载MySettingsView.xib而不是MySettingsView Controller .xib。 也许它的“做我的意思”逻辑太过于花哨。

所以我通过在MySettingsViewController.m中硬编码NIB / XIB名称解决了这个问题:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:@"MySettingsViewController" bundle:nibBundleOrNil];
}

我有同样的问题,但需要一个稍微不同的解决方案。 这种情况下的问题是文件所有者的类,而不是视图的类。 为了设置它,我必须点击界面生成器窗口左下角的“向后播放”图标,然后出现的选项隔离了文件所有者,第一响应者和视图的特征。 点击第一个(一个大的透明框),使我能够按照上面的建议设置它的自定义类。


我有同样的问题,我想通了,这是因为我已经勾选了内容选项下的表视图属性中的“ 静态单元格 ”。 工作时,它变成“ Dynamic Prototypes ”。 屏幕截图如下。


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


视图标识 - 类标识未设置。 将其设置为适当的课程后,问题就解决了。


选择文件所有者并打开身份检查器,给出它所对应的类名。 如果上述方法都不起作用,但仍然无法看到视图插座,则将新的参考插座连接到文件的所有者,然后您就可以看到视图插座。 点击视图Outlet在View Outlet和File的所有者之间建立连接。 运行应用程序,这工作正常。





xib