Seb*_*ldt 7 iphone cocoa-touch uitableview ios
我想在我的应用程序中添加一个tableview-look-a-like-login,但它似乎并不那么容易实现.我尝试使用多种方法来实现我的目标,但我不确定哪种解决方案是最好的.
例如,Dropbox和Facebook都有这样的登录页面.
以下是我的3种方法:
我在我的视图中添加了2个UITextfields(没有边框)并放置了一个.png后面,看起来像tableviewcell.(不是最好的方法,因为我想使用真实的tableviews)
我在ViewController中添加了一个Container View,里面放置了一个带有静态Table Views的tableview.这里的问题是,我不知道如何访问我的viewcontroller中的信息?
我在我的ViewController中添加了一个tableview,并使用了动态单元格.将委托和数据源的出口连接到我的viewcontroller,并使用委托和数据源方法初始化它们.这里的问题是,我不能在uiviewcontroller中使用静态表视图.
有没有更好的方法来解决这个问题?我真的想知道如何以更优雅的方式做到这一点.
编辑:
一个月前,ContainerViewController基本上解决了这个问题.将一个嵌入主控制器后,您可以通过该prepareForSegue功能访问它,并为该特定控制器定义基于协议的接口,以与嵌入式控制器进行交互.
我有一个想法如何解决这个问题。我认为这是一种干净的方式。您不需要此控制器的故事板。
让你的控制器子类 UITableViewController 像这样:
@interface YourViewController : UITableViewController
Run Code Online (Sandbox Code Playgroud)
然后在 viewDidLoad 中创建单元格的实例:
- (void) viewDidLoad {
usernameCell = [YourTextFieldCell new];
passwordCell = [YourTextFieldCell new];
}
Run Code Online (Sandbox Code Playgroud)
当然是YourTextFieldCell你自己的 UITableViewCell 子类,它可能是这样的:
@implementation YourTextFieldCell {
UITextField textField;
}
- (id) init {
self = [super init];
if (self) {
// Adjust the text's frame field to your liking
textField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 200, 20)];
[self addSubview:textField];
}
}
// A getter method to access the textfield from the outside
- (UITextField *) textField {
return textField;
}
@end
Run Code Online (Sandbox Code Playgroud)
早在YourViewController:
- (NSInteger) tableView:(UITableView *) tv numberOfRowsInSection:(NSInteger) section {
return 2;
}
- (UITableViewCell *) tableView:(UITableView *) tv cellForRowAtIndexPath:(NSIndexPath *) indexPath {
if (indexPath.row == 0) {
return usernameCell;
} else if (indexPath.row == 1) {
return passwordCell;
}
return nil;
}
Run Code Online (Sandbox Code Playgroud)
你明白我的意思了吗?我认为你应该这样做!祝你好运!
| 归档时间: |
|
| 查看次数: |
6660 次 |
| 最近记录: |