2012-04-30 26 views
0

私はこのParse Tutorialに続いてカスタムUITableViewControllerを作成しました。私はストーリーボードのUITableViewを編集できるようにしたいと思います。私はこのチュートリアルのどこかでViewControllerをTableViewにリンクしていると思っていましたが、私はそれも持っていませんでした。 UI編集のためにこのViewControllerにリンクされたstroyboardでこのTableViewにアクセスするにはどうすればよいですか?UITableViewControllerのUITableViewをストーリーボードで編集する

GitHubのViewController codeはこちらです。

編集:これは実際にはParse APIとは関係ありません。テーブルビューはストーリーボードにはありません。これは私が解決しようとしている問題です。

MyTableViewController *controller = [[MyTableViewController alloc] init]; 

self.window.rootViewController = controller; 

そしてこのMyTableViewController.mへ:チュートリアルはAppDelegate.mにこれを追加するために私を指示し

- (id)initWithStyle:(UITableViewStyle)style 

{ 

self = [super initWithStyle:style]; 

if (self) { 

    // Custom the table 

    // The className to query on 

    self.className = @"Artists"; 

    // The key of the PFObject to display in the label of the default cell style 

    self.keyToDisplay = @"artistName"; 

    // Whether the built-in pull-to-refresh is enabled 

    self.pullToRefreshEnabled = YES; 


    // Whether the built-in pagination is enabled 

    self.paginationEnabled = YES; 


    // The number of objects to show per page 

    self.objectsPerPage = 50; 

} 

return self; 

} 

アプリが細かい実行されているが、私はストーリーボードを持っているすべてが空白の図です。私はTableViewを作成し、それをMyTableViewControllerにリンクする必要がありますか?私はAppDelegateのself.window ...コードを削除しなければならないと思っています。

編集:更新されたコード:

#import "MyTableViewController.h" 

@implementation MyTableViewController 
@synthesize tableView = _tableView; 


#pragma mark - View lifecycle 

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 


    // Custom the table 

    // The className to query on 
    self.className = @"Artists"; 

    // The key of the PFObject to display in the label of the default cell style 
    self.keyToDisplay = @"artistName"; 

    // Whether the built-in pull-to-refresh is enabled 
    self.pullToRefreshEnabled = YES; 

    // Whether the built-in pagination is enabled 
    self.paginationEnabled = YES; 

    // The number of objects to show per page 
    self.objectsPerPage = 50; 




// Uncomment the following line to preserve selection between presentations. 
// self.clearsSelectionOnViewWillAppear = NO; 

// Uncomment the following line to display an Edit button in the navigation bar for this  view controller. 
self.navigationItem.rightBarButtonItem = self.editButtonItem; 
} 

- (void)viewDidUnload 
{ 
[self setTableView:nil]; 
[super viewDidUnload]; 
// Release any retained subviews of the main view. 
// e.g. self.myOutlet = nil; 
} 

- (void)viewWillAppear:(BOOL)animated 
{ 
[super viewWillAppear:animated]; 
} 

- (void)viewDidAppear:(BOOL)animated 
{ 
[super viewDidAppear:animated]; 
} 

- (void)viewWillDisappear:(BOOL)animated 
{ 
[super viewWillDisappear:animated]; 
} 

- (void)viewDidDisappear:(BOOL)animated 
{ 
[super viewDidDisappear:animated]; 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:   (UIInterfaceOrientation)interfaceOrientation 
{ 
// Return YES for supported orientations 
return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

- (void)didReceiveMemoryWarning 
{ 
// Releases the view if it doesn't have a superview. 
[super didReceiveMemoryWarning]; 

// Release any cached data, images, etc that aren't in use. 
} 

#pragma mark - Parse 

- (void)objectsDidLoad:(NSError *)error { 
[super objectsDidLoad:error]; 

// This method is called every time objects are loaded from Parse via the PFQuery 
} 

- (void)objectsWillLoad { 
[super objectsWillLoad]; 

// This method is called before a PFQuery is fired to get more objects 
} 


// Override to customize what kind of query to perform on the class. The default is to query for 
// all objects ordered by createdAt descending. 
- (PFQuery *)queryForTable { 
PFQuery *query = [PFQuery queryWithClassName:self.className]; 

// If no objects are loaded in memory, we look to the cache first to fill the table 
// and then subsequently do a query against the network. 
if ([self.objects count] == 0) { 
    // ** There are other caching options in Parse iOS guide 
    query.cachePolicy = kPFCachePolicyNetworkElseCache; 
} 

[query orderByDescending:@"tweetInfluence"]; 

return query; 
} 
// Override to customize the look of a cell representing an object. The default is to display 
// a UITableViewCellStyleDefault style cell with the label being the first key in the object. 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object { 
static NSString *CellIdentifier = @"Cell"; 

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

// Configure the cell 
cell.textLabel.text = [object objectForKey:@"artistName"]; 
cell.detailTextLabel.text = [NSString stringWithFormat:@"Tweet Influence: %@", [object objectForKey:@"tweetInfluence"]]; 

return cell; 
} 
#pragma mark - Table view delegate 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
[super tableView:tableView didSelectRowAtIndexPath:indexPath]; 
} 


@end 

答えて

0

あなたはストーリーボードを使用している場合は、そのAppDelegateから

MyTableViewController *controller = [[MyTableViewController alloc] init]; 

self.window.rootViewController = controller; 

を削除する必要があります。ストーリーボードでは、アプリのエントリーポイントはストーリーボード自体で制御され、右向き矢印で表されます。

また、コードが現れているので、あなたのアプリケーションはinitWithStyle関数ではなく、ビューコントローラでinit関数を呼び出しています。 View ControllerのviewDidLoad関数に現在initWithStyleにあるコードを挿入して、コードが確実に呼び出されるようにしてください。

+0

ありがとう、私はまだこのエラーを受けています: '接続コンパイルできませんでした: =>テーブルセル=>>' – mnort9

+0

を。助けてくれてありがとう。 – mnort9

+0

テーブルビューからセルをIBOutletとして誤って接続した可能性があります。表示されているテーブルビューのセルを右クリックして、「アウトレット」の下に何も設定されていないことを確認してください。 Xをクリックして削除することができます。それから、テーブルを 'tableView'プロパティに接続します。その代わりに、セルで覆われていない領域からCtrl +ドラッグします(または、ストーリーボード画面の左側のビュー階層内で見つけてください)。 –

関連する問題