这是我遇到的一个小问题。我不太擅长以编程方式更改视图,但这就是我所拥有的:
//(.h)
#import <UIKit/UIKit.h>
#import "Detail.h"
@interface List : UIViewController <UITableViewDelegate, UITableViewDataSource>
{
}
@property (retain, nonatomic) IBOutlet UITableView *tableView;
@property (retain, nonatomic) Detail *detail;
@end
和
//(.m)
@synthesize detail=_detail;
- (Detail *)detail
{
NSLog(@"Detail UIView construction started.");
if (_detail != nil)
{
return _detail;
}
Detail *aDetailView = [[Detail alloc] init];
_detail = aDetailView;
[self.view addSubview:_detail.view];
//I never really set it to setHidden:YES, but just to make sure I'm setting it NO here.
[_detail.view setHidden:NO];
return _detail;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[UIView transitionFromView:self.view toView:self.detail.view duration:1 options:UIViewAnimationOptionTransitionFlipFromRight completion:nil];
}
作为输出:
2012-02-07 11:17:51.909 TodoApp[4232:fb03] Detail UIView construction started.
该视图似乎可以很好地完成FlipFromRight动画,但屏幕完全是黑色的。 正如我所说,我不擅长以编程方式改变观点。
感谢您的帮助!
============= 回答我自己的问题。
这真是太愚蠢了。标题栏中的“后退”按钮具有不受支持的配置。所以View不想加载......现在修复它。
答案 0 :(得分:0)
- (Detail *)detail
{
NSLog(@"Detail UIView construction started.");
if (_detail != nil)
{
return _detail;
}
Detail *aDetailView = [[Detail alloc] init];
[self.view addSubview:aDetailView.view];
//I never really set it to setHidden:YES, but just to make sure I'm setting it NO here.
[aDetailView.view setHidden:NO];
_detail = aDetailView;
return _detail;
}
进行这些更改并让我知道结果..
答案 1 :(得分:0)
在将其添加到superview之前返回_detail
所以添加这一行
return _detail;
此行后[self.view addSubview:_detail.view];
像这样[self.view addSubview:_detail.view];
[_detail.view setHidden:NO];
return _detail;
答案 2 :(得分:0)
回答我自己的问题。
这真是太愚蠢了。标题栏中的“后退”按钮具有不受支持的配置。所以View不想加载......现在修复它。