【问题标题】:Cannot create new outlets in interface builder, old ones have a warning symbol无法在界面生成器中创建新插座,旧插座有警告符号
【发布时间】:2016-06-17 15:46:27
【问题描述】:

我不确定是什么导致了这个问题,但我现在无法创建网点。当我创建一个插座时,它在代码中出现并且工作正常,但没有出现在情节提要的视图控制器下。旧网点上有这样的警告符号

当我移除这个插座时,它消失了,并且没有重新连接。我正在运行 Xcode beta 6.2,因为迁移到 6.2 暂时解决了这个问题,因为我之前在 6.1 中就已经有了它。

这是这个类的.h文件

#import <UIKit/UIKit.h>

@interface DashboardViewController : UITableViewController {
   NSString *currentDay;
}
@property (nonatomic, weak) IBOutlet UILabel *dayLabel;
@property (nonatomic, weak) IBOutlet UILabel *blockLabel;
@property (nonatomic, weak) IBOutlet UILabel *currentClassLabel;

@end

这里是故事板中列出的网点

这些是警告的详细信息,但这是该类的 .h 文件代码

#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>

@interface InfoViewController : UIViewController {
  IBOutlet UIScrollView *AISScrollView;
  IBOutlet MKMapView *AISMapView;
}
 -(IBAction)studentHandbook:(id)sender;
 @end

【问题讨论】:

  • 你删除了视图控制器中任何地方的按钮操作
  • 可以添加视图控制器的.h吗?
  • 在界面生成器中检查视图是否已连接?如果未连接视图,则仅表示这样的显示。
  • 看起来不错.. 警告说什么?
  • 1) 重新启动 xcode,2nd) 检查情节提要上 viewcontroller 的类文件是否相同。

标签: ios xcode interface builder


【解决方案1】:

奇怪的是,我最终找到了一个解决方案,将项目从它所在的目录中移出。它在我的 Dropbox 文件夹中,并将其移出修复。如果以后有人遇到这个问题,并且恰好在他们的 Dropbox 中有项目,请将其移出。

【讨论】:

  • 我不知道为什么我以前没有想到这一点,现在看起来很明显。谢啦!故事的寓意不要使用 Dropbox :)
  • @JoeBarbour 我喜欢并每天使用 Dropbox。只是不要将它用于 Xcode 项目。
【解决方案2】:

尝试改变这一点:

#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>

@interface InfoViewController : UIViewController {
  IBOutlet UIScrollView *AISScrollView;
  IBOutlet MKMapView *AISMapView;
}
 -(IBAction)studentHandbook:(id)sender;
 @end

到那个:

#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>

@interface InfoViewController : UIViewController {

}
@property (nonatomic,weak) IBOutlet UIScrollView *AISScrollView;
@property (nonatomic,weak) IBOutlet MKMapView *AISMapView;

 -(IBAction)studentHandbook:(id)sender;

 @end

【讨论】:

  • 将代码更改为此没有任何作用。当我移除有警告的插座时,插座会消失并且无法重新连接。
  • 我建议您拆分视图 - 一侧放 .h,一侧放 xib。 Ctrl+将 UIViews(MKMapView 和 UIScrollView)从 storyboard 拖到 .h 并选择 touchUpInside: 或任何你需要的。输出是什么?
  • 当我尝试控制并拖动 .h 文件中的插座到启用 Xcode 拆分视图的视图中时,当我将鼠标悬停在视图上时,它不会突出显示视图。当我释放时没有任何反应。
  • 尝试以相反的方式进行 - 故事板到 .h - 它应该自动链接它。但在丢弃 .h 处的插座并擦除情节提要上的连接器之前。清洁只是为了案例。
  • 所以这再次创建了插座,但插座在创建时出现警告符号。出口说不存在具有该名称的出口,这显然是不正确的,因为该出口是通过CTRL +拖动设置的。
【解决方案3】:

以防万一有人再次遭受同样的事情,这个其他线程中的最佳答案对我有用:

XCode 6: can't connect any IBOutlet to ViewController

从项目中删除 .h 和 .m 文件(它们的引用)并再次读取它们是对我有用的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2014-01-06
    • 2012-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多