我有一个UITableViewController
,它是名为LoginTableViewController
的应用程序的初始控制器。
我想为纵向模式显示一个UITableView
,为横向模式显示另一个。
目前我为横向模式设置了另一个UITableViewController
(LoginTableViewController_L
)。我在UITableView
中的格局UITableViewController
中声明了LoginTableViewController
,希望我可以根据方向切换UITableViews
。旋转手机后,我只得到一个黑色/空白屏幕,标题栏位于顶部。
有没有更好的方法来解决这个问题?
@property (strong, nonatomic) IBOutlet UITableView *LoginTableView;
@property (strong, nonatomic) IBOutlet UITableView *LoginTableView_Landscape;
答案 0 :(得分:1)
使用单个TableView。
如果你想要一个完全不同的外观(不只是调整相同的单元格)
检测设备方向并根据当前方向加载不同的单元格。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UIInterfaceOrientation interfaceOrientation = [[UIApplication sharedApplication] statusBarOrientation];
if (UIInterfaceOrientationIsPortrait(interfaceOrientation)) {
PortraitCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[PortraitCell alloc]init];
}
} else {
LandscapeCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[LandscapeCell alloc]init];
}
}
return cell;
}
当设备方向改变时,请致电
[myTableView reloadData];
* PsudoCode显示概念。