为什么我在UITableView中有一个空的(但工作)表索引带?

时间:2011-09-24 12:34:53

标签: c# iphone xamarin.ios uitableview

使用MonoTouch为客户开发我的第一个iPhone应用程序,我已经覆盖了UITableViewDataSource.SectionIndexTitles函数,以提供string[]数组,我认为这些数字会在垂直波段中生成。

目前,我正面临着一个有效的索引乐队,但没有显示任何字符:

iPhone

(我认为UITableViewDataSource.SectionIndexTitles具有原生对应sectionIndexTitlesForTableView)。

我的问题:

有人可以给我一些关于我在这里做错的提示吗?

我没有所有的A-Z字符,但缺少一些字符,也许这可能是一个问题?

2 个答案:

答案 0 :(得分:4)

这是MonoTouch中的一个错误。解决方法是在表源类中创建一个新方法,并使用Export属性对其进行修饰,并将本机ObjC方法传递给覆盖(sectionIndexTitlesForTableView:):

string[] sectionIndexArray;
//..
[Export ("sectionIndexTitlesForTableView:")]
public NSArray SectionTitles (UITableView tableview)
{                   
    return NSArray.FromStrings(sectionIndexArray);
}

答案 1 :(得分:-4)

我想回到我的观点......

你能展示你为sectionIndexTitlesForTableView构建返回值的方式吗?我刚刚尝试使用Apple http://developer.apple.com/library/ios/#samplecode/TableViewSuite/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007318

中的SimpleSectionedTableView示例应用程序

使用此代码:

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
    NSMutableArray *a = [[NSMutableArray alloc]initWithCapacity:10];
    for (int i = 0; i<[regions count]; i++) {
        Region *r = [regions objectAtIndex:i];
        NSString *s = r.name;
        [a addObject:s];
    }
    NSArray *ax = [NSArray arrayWithArray:a];
    return ax;


}

一切正常......