我正在尝试在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!"];
}
}
答案 0 :(得分:1)
setRowTypes:
获取一个字符串数组,这些字符串是您在故事板中分配给行控制器的每个名称,而不是您要放入行中的数据。
您可能需要[self.playlistTable setNumberOfRows:listArray.count withRowType:@"RowType"]
,其中@"RowType"
是您在故事板中为行控制器指定的名称。
答案 1 :(得分:1)
事实证明我没有在故事板中设置我的行控制器标识符。一旦我这样做,它按预期工作。