Storyboard - UIViewにUITableViewを追加する

UIViewの一部にUITableViewを追加したくなるときがあります。全画面をUITableViewで使用するときには、UITableViewControllerを使えば良いのですが、画面の一部だけにUITableViewを使いたいときは、UIViewにUITableViewを追加した後にいくつか作業が必要です。

まず、UIViewにUITableViewをドラッグ&ドロップして、サイズを整えます。

次に、UITableViewをコントロールキーを押したままクリックして、下にある黄色いViewControllerボタンに連結します。

ボタンを話すと、dataSourcedelegateという2つのOutletが表示されます。

両方ともこのViewController(実際はBeaconVewController)に連結しますので、同じ作業を2回繰り返して、dataSourcedelegateもBeaconViewControllerのOutletとして登録しましょう。

これで、TableViewのdataSourceとdelegaeがベBeaconViewControllerに登録されました。

次にUITableViewで必要になるプロトコルをBeaconViewControllerに追加します。もとの宣言はこうなっていると思いますが、

@interface BeaconViewController : UIViewController

これにUITableViewDelegateとUITableViewDataSourceを追加します。

@interface BeaconViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>

最後にこれらのprotocolで必須のメソッドをBeaconViewControllerに用意します。

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

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

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell= [tableView dequeueReusableCellWithIdentifier:@"cell"];
    return cell;
}

これで完了です。Cellの生成などの実装は必要に応じて追加しましょう。