簡體   English   中英

iPad:Popover示例到iOS5

[英]iPad:Popover sample to iOS5

我正在開發一個可在iPhone和iPad上使用的應用程序。

今天,我發現應該在iPad上使用Popover for iPad,而不是在操作表上使用PickerView。

我正在嘗試使用示例應用程序在iOS5上使用它,但出現了錯誤;

***由於未捕獲的異常“ NSInternalInconsistencyException”而終止應用程序,原因:
'-[UITableViewController loadView]加載了“ 2-view-5”筆尖,但未獲取UITableView。
***首先拋出調用堆棧:

您知道我到底需要做什么才能解決此問題嗎? 而且,您對iOS5的彈出窗口示例有何建議?

UYLMasterViewController.m
#import "UYLMasterViewController.h"
#import "UYLDetailViewController.h"

@implementation UYLMasterViewController

@synthesize detailViewController = _detailViewController;

#pragma mark -
#pragma mark === View Management ===
#pragma mark -

- (void)viewDidUnload
{
[super viewDidUnload];
self.detailViewController = nil;

}



- (BOOL)shouldAutorotateToInterfaceOrientation:   (UIInterfaceOrientation)interfaceOrientation
{
return YES;
}

#pragma mark -
#pragma mark === Table View Delegates ===
#pragma mark -

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 20;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

NSUInteger row = [indexPath row];
cell.textLabel.text = [NSString stringWithFormat:@"Item %u", row+1];
return cell;
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSUInteger item = [indexPath row] +1;
NSNumber *detailItem = [NSNumber numberWithInteger:item];

if (self.detailViewController)
{
    self.detailViewController.detailItem = detailItem;
}
}

@end

如果您沒有從示例應用程序中進行任何修改,這很奇怪。 無論如何,當我忘記設置從表到控制器UITableViewController的IBOutlet連接時,通常會收到此錯誤。

您可能會誤刪除它,或者Xcode由於某種原因失去了連接(發生)。

查看UYLMasterViewController.h是否為UITableViewController。 如果是,則UITableView必須是nib文件中的第一個視圖,直接連接到控制器的'view'IBOutlet屬性。 否則,如果UITableView在UIView內,則將得到您提到的確切錯誤。

如果UITableView不是主視圖,則可能的解決方案是將UYLMasterViewController設置為普通的UIViewController並為其提供所有委托訪問器,然后將連接從UITableView拖動到控制器,您將看到有兩個選項委托和數據源,兩者都需要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM