ios下一个和上一个按钮

时间:2012-11-05 16:23:42

标签: ios nsarray

当我到达数组的最后一个结果时,我想要消失的下一个按钮,当我在数组的第一个结果时,我希望我的前一个按钮消失。我发现只有一个结果才能让它们消失。

Contacts是数组。

下一个按钮:

        //button look
if (contacts != nil) { 
    if ([contacts count] > 1 ) [self.view addSubview:nextButton];

上一个按钮:

       //button look
if (contacts != nil) { 
    if ([contacts count] > 1 ) [self.view addSubview:previousButton];

我试过这个

if ([contacts count] < (index-1)) [self.view addSubview:nextButton];

我收到此错误“指针和整数之间的有序比较('NSUInterger'(又名'unsigned int')和'char *(*)(const char *,int)')”按钮就在那里它只是没有'当它到达最后的结果时t消失。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:0)

听起来索引是NSUInterger。 count是一个int,NSUInteger是无符号整数的typedef。尝试更改索引,无论您将其设置为int还是将其类型转换为int,您可以将其用于比较。

关于按钮的部分,如果你的逻辑是正确的并且你试图从视图中删除“nextButton”,你可以隐藏或从视图中删除它,如下所示:

// To remove button
if ([contacts count] < (index-1)) [nextButton removeFromSuperview]; 

//To hide button
if ([contacts count] < (index-1)) nextButton.hidden = YES;

答案 1 :(得分:0)

你永远不会从superView中删除它,所以它永远不会消失。你应该使用按钮的隐藏属性,即

[nextButton setHidden:NO];

或是,如果你想隐藏它。

错误可能来自索引实体,您是否将其作为NSUInterger进行了类型转换?将其更改为uint或int。 (刚发布有点迟了,但在其他答案中已经提到过:D)

答案 2 :(得分:0)

if ([contacts objectAtIndex:[contacts count]-1])
 { 
    [self.view addSubview:nextButton];
}
if([contacts objectAtIndex:0)
{
 [self.view addSubview:previousButton];
}

希望这有帮助... nil只是告诉它没有更多的元素要包含在数组中。你不能用它来检查..