UITableView 사용방법

1. 스토리보드에 테이블뷰를 추가한다.

2. 데이터소스와 델리게이트를 뷰콘트롤러와 연결한다.
  아래와 같이 뷰콘트롤러와 연결한다. 이게 빠져서 한참을 헤매인 적이 있다.

3. 테이블뷰의 속성을 설정한다.
  색 표시 된 곳의 설정을 해야 한다.
  특히 Identifier의 값을 나중에 사용해야 하므로 유일한 값으로 설정하고
  Style은 Subtitle로 설정한 이유는 이미지, 타이틀, 세부내역을 표시하기 위해서 이다.

4. 헤더파일을 설정한다.

#import <UIKit/UIKit.h>

@interface nemesisViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>

@property (nonatomic, strong) NSArray *menuImages;
@property (nonatomic, strong) NSArray *menuName;
@property (nonatomic, strong) NSArray *menuPrice;

@end


적색으로 표시한 부분을 추가한다.

5. 변수 동기화 내용을 추가한다.

@implementation nemesisViewController 바로 아래 적색글자를 추가한다.

@synthesize menuImages = _menuImages;
@synthesize menuName = _menuName;
@synthesize menuPrice = _menuPrice;

6. 시작 메소드에 값을 강제로 추가한다.
- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
    // 초기 데이터 강제 입력
    self.menuName = [[NSArray alloc] initWithObjects:@"치킨", @"골뱅이", nil];
    self.menuPrice = [[NSArray alloc] initWithObjects:@"24,000", @"25,000", nil];
    self.menuImages = [[NSArray alloc] initWithObjects:@"image1.png", @"image2.png", nil];
}

7. 테이블 뷰 관련 메소드를 추가한다.
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    // 섹션의 수를 설정 보통 1개
    return 1;
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // 객체의 수가 몇 개인지 설정
    return [self.menuName count];
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{
    static NSString *CellIdentifier = @"Cell";
    
    UITableViewCell *cell = (UITableViewCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
    }

    // 셀에 나타낼 내용을 표시
    cell.imageView.image = [UIImage imageNamed:[self.menuImages objectAtIndex:[indexPath row]]];
    cell.textLabel.text = [self.menuName objectAtIndex:[indexPath row]];
    cell.detailTextLabel.text = [self.menuPrice objectAtIndex:[indexPath row]];
    return cell;
}

일단 위와 같이 하면 화면에 뷰를 추가하고 테이블에 내용을 표시할 수 있다.
처음에 보통 델리케이트와 데이터소스를 연결하지 않아 내용이 나타나지 않는 문제가
발생하여 애를 먹은 적도 있으므로 그부분을 잊지 말아야 한다.


댓글

이 블로그의 인기 게시물

한글 2010 에서 Ctrl + F10 누르면 특수문자 안뜰 때

아이폰에서 RFID 사용하는 방법

맥 화면이 안나올때 조치방법