我創建了UIView的自定義子類以及xib文件,並在自定義類中聲明瞭IBOutlets和IBActions。從Xib加載的自定義UIView
@interface ContactUsView : UIView
@property (nonatomic, weak) IBOutlet UIButton *displayCloseButton;
- (IBAction)callButtonPressed:(id)sender;
- (IBAction)emailButtonPressed:(id)sender;
- (IBAction)displayCloseButtonPressed:(id)sender;
@end
在xib文件中,我拖入一個UIView來表示我的自定義視圖。我已設置:
- 文件所有者=我的自定義類
- 已經設置了拖在UIView的到我的自定義類。
然後我添加了各種按鈕,這些按鈕連接到上述3種方法。
的ContactUsView.m裏面我有以下幾點:
- (id)initWithFrame:(CGRect)frame
{
if (self = [super initWithFrame:frame]) {
NSArray* array = [[NSBundle mainBundle] loadNibNamed:@"ContactUsView" owner:self options:nil];
for (id object in array) {
if ([object isKindOfClass:[ContactUsView class]])
self = (ContactUsView *)object;
}
}
return self;
}
當我來到創建這個觀點我做到以下幾點:
- (void)viewWillAppear:(BOOL)animated
{
ContactUsView *contactUs = [[ContactUsView alloc] initWithFrame:CGRectZero];
CGPoint origin = self.view.frame.origin;
CGSize size = self.view.frame.size;
[contactUs setFrame:CGRectMake(origin.x,
CGRectGetMaxY(self.view.frame) - 100,
size.width,
contactUs.frame.size.height)];
[self.view addSubview:contactUs];
}
問題 當我按下之一應用程序崩潰的按鈕: 線程1:EXC_BAD_ACCESS(code = 2,address = 0xb0c
任何人都可以幫助我。我覺得我可能在創建和加載xibs的自定義uiviews方面犯了一個錯誤。
如果您需要了解更多信息,請告訴我。非常感謝。
未來的參考 使用xib創建自定義視圖時不要設置文件所有者。相反,按照通常的方式創建所有的IBOutlet和IBActions,然後掛鉤它們打開Utilities選項卡並從那裏控制拖動。
你能張貼整個錯誤?或者錯誤實際發生的路線?在XCode中啓用例外的斷點。 – KerrM 2014-12-05 11:24:29
如果我在被調用的某個方法中放置了一個斷點,它從來沒有達到斷點。它只是與上面的代碼崩潰,沒有顯示在輸出中。我添加了「所有異常」斷點,並且仍然沒有顯示在輸出中。 – pls 2014-12-05 11:39:30