Iphone 使用UIbutton显示plist NSmutable数组中的下一项

Iphone 使用UIbutton显示plist NSmutable数组中的下一项,iphone,dictionary,uibutton,nsarray,plist,Iphone,Dictionary,Uibutton,Nsarray,Plist,我正在开发一个iphone应用程序,它有一个包含UILabel的单一视图。UILabel显示plist中的字符串,其结构如下: Root................................................(Array) .............Item 0.................................(Dictionary) .........................Question...................(String)

我正在开发一个iphone应用程序,它有一个包含UILabel的单一视图。UILabel显示plist中的字符串,其结构如下:

Root................................................(Array)
.............Item 0.................................(Dictionary)
.........................Question...................(String)    "question 0"
.............Item 1.................................(Dictionary)
.........................Question...................(String)    "question 1"
.............Item 2.................................(Dictionary)
.........................Question...................(String)    "question 2"
Plist被定义为NSArray,每个字典中的字符串都使用常量键调用

现在,我想实现一个UIButton,当按下该按钮时,将下一项从plist/数组加载到UILabel中

我需要知道这个动作在代码中是什么样子的,因为我在任何地方都找不到一个例子:(.有人能帮我吗


j

听起来您想要一个UITableView,并将每个单元格设置为属性列表中的一个项目。这是一个很好的文档,不仅在本例中需要的API方面,而且在示例代码中。例如,表视图套件就是一个很好的地方


试着用UI来形象化你的用例,你会明白我的意思。

嗯,我有自己的方法来做这样的事情,我现在就告诉你如何做

您需要这样做。4个单词需要4个UIButtons,因此1个单词需要1个按钮。我将从.h开始声明我的出口和操作

{
IBOutlet UIButton *Button1; 
IBOutlet UIButton *Button2; 
IBOutlet UIButton *Button3; 
IBOutlet UIButton *Button4;
IBOutlet UILabel *Label; 
}
// and now I'll do 4 actions.
-(IBAction)Button1Action;
-(IBAction)Button2Action;
-(IBAction)Button3Action;
-(IBAction)Button4Action;
在my.m中,我将从一些代码开始,这些代码将在应用程序启动后立即运行。因此,我可以只执行viewDidLoad,因为我记不清应用程序的最终启动方法

-(void)viewDidLoad {
NSLog(@"Application has launched, hiding buttons 2, 3, and 4.");
[Button2 setHidden:YES];
[Button3 setHidden:YES];
[Button4 setHidden:YES];
}
现在我们来做这些动作。在界面生成器中分离4个按钮,连接按钮,然后将第一个按钮放在你想要的地方,第二个按钮放在上面,第三个,然后第四个,依此类推,不管你有多少单词

-(IBAction)Button1Action {
NSLog(@"Button 1 pressed.);
[Button2 setHidden:YES];
[Button3 setHidden:YES];
[Button4 setHidden:YES];
[Button1 setHidden:NO];
Label.text = @"word number 1";
}

-(IBAction)Button2Action {
NSLog(@"Button 2 pressed.);
[Button1 setHidden:YES];
[Button3 setHidden:YES];
[Button4 setHidden:YES];
[Button2 setHidden:NO];
Label.text = @"word number 2";
}

-(IBAction)Button3Action {
NSLog(@"Button 3 pressed.);
[Button1 setHidden:YES];
[Button2 setHidden:YES];
[Button4 setHidden:YES];
[Button3 setHidden:NO];
Label.text = @"word number 3";
}

-(IBAction)Button4Action {
NSLog(@"Button 4 pressed.);
[Button1 setHidden:YES];
[Button2 setHidden:YES];
[Button3 setHidden:YES];
[Button4 setHidden:NO];
Label.text = @"word number 4";
}

差不多就是这样。我喜欢用我的方式做事,有时比人们通常的方式长,有时短。我希望这能对你有所帮助。

Hi Jer,谢谢你的回答。我想使用的视图是一个简单的UIVIew,只有一个UIlable。按钮需要在列表项上下导航,并显示eir响应。不是一个表视图。有什么想法吗?当然你可以很容易地做到。创建一个带有标签和按钮的自定义视图(位置根据你的喜好)然后,在点击按钮时调用的方法中,更新UILabel。另一种方法是取消按钮,并使标签响应点击事件。如果您的目标是3.2或4.0或传统触摸,则可以使用UIAppgestureRecognizer。Send:withEvent:这听起来正是我需要的!您有exa吗代码将如何查找的示例?我在任何地方都找不到示例:(.jOpen up interface builder,创建一个新视图并按照您的意愿进行布局。连接按钮和标签的一些插座(如果您希望能够操作按钮,只需连接按钮的插座,即隐藏按钮、重命名按钮等)然后在单击按钮时将一个操作连接到一个方法。这是一些基本内容,在许多教程中都有详细的说明。一旦有了这些内容,您将在视图控制器的单击处理程序中实现的逻辑将是您希望获取下一项并替换标签内容的方式。然后只需将此自定义视图添加为子视图即可e-我理解你在这里所说的一切。这是允许操作发生的代码(即加载plist/数组中的下一项),我需要具体查看,我希望看到一个明确编写的示例!感谢您的工作-我认为如果我只使用30项,这将是完美的)一旦我有了用按钮扫描项目的方法。