WatchKit表是空白的

时间:2015-06-06 19:48:42

标签: ios objective-c tableview watchkit

我正在尝试在WatchKit上创建一个表。出于某种原因,在WatchKit中启动应用程序时只是空白。我已经确认这是一个表问题(我添加了一个静态标签,并且能够看到它)。我相信我也把所有的IBOutlets都搞定了。我做错了什么?

我的InterfaceController.h上有以下代码:

@ManagedBean(name = "filmShowcase")
@SessionScoped
public class FilmShowcaseBean{

    @ManagedProperty("#{filmActorDao}")
    private FilmActorDao filmActDao;

    private Film film;
    private List<Actor> filmActors;

    @PostConstruct
    public void init() {
        if(film != null){

              filmActors = filmActDao.listOfActorsFromFilm(film.getFilmId());
              System.out.println(filmActors.size());
        }else{



        }
    }

    public Film getFilm() {
        return film;
    }

    public void setFilm(Film film) {
        this.film = film;
    }

    public List<Actor> getFilmActors() {
        return filmActors;
    }

    public void setFilmActors(List<Actor> filmActors) {
        this.filmActors = filmActors;
    }

    public FilmActorDao getFilmActDao() {
        return filmActDao;
    }

    public void setFilmActDao(FilmActorDao filmActDao) {
        this.filmActDao = filmActDao;
    }




}

InterfaceController.m:

@interface InterfaceController : WKInterfaceController {
    NSMutableArray *listArray;
}

@property (weak, nonatomic) IBOutlet WKInterfaceTable *playlistTable;

和NSObject行类'universalRow':

- (void)awakeWithContext:(id)context {
    [super awakeWithContext:context];
    // Configure interface objects here.

    listArray = [[NSMutableArray alloc] initWithObjects:@"Hello", @"Watch", @"World", nil];
    [self setupTable];
}

- (void)willActivate {
    // This method is called when watch view controller is about to be visible to user
    [super willActivate];
}

- (void)didDeactivate {
    // This method is called when watch view controller is no longer visible
    [super didDeactivate];
}

- (void)setupTable {

    [self.playlistTable setRowTypes:listArray];

    for (int i = 0; i < self.playlistTable.numberOfRows; i++)
    {
        universalRow *row = [self.playlistTable rowControllerAtIndex:i];
        [row.mainTitle setText:[listArray objectAtIndex:i]];
        [row.subtitleLabel setText:@"subtitle!"];
    }
}

2 个答案:

答案 0 :(得分:1)

setRowTypes:获取一个字符串数组,这些字符串是您在故事板中分配给行控制器的每个名称,而不是您要放入行中的数据。

您可能需要[self.playlistTable setNumberOfRows:listArray.count withRowType:@"RowType"],其中@"RowType"是您在故事板中为行控制器指定的名称。

答案 1 :(得分:1)

事实证明我没有在故事板中设置我的行控制器标识符。一旦我这样做,它按预期工作。

enter image description here