2011-03-28 44 views
0

我一直在为我自己开发一个简单的RSS阅读器。我是Objective-C的新手,所以我被卡住了一点。在应用程序的导航栏上有一个添加按钮,用户可以输入rss提要的url来打开uialertview。该应用程序在其源代码中具有预定义的rss提要地址。我正在写我的代码示例如下:如何从文本字段获取url并在应用程序中使用它?

- (void)viewDidLoad { 
    [super viewDidLoad];  
    self.feeds = [NSArray arrayWithObjects:@"http://www.formula1.com/rss/news/latest.rss", 
        nil]; 

feeds是预定义数组,它具有feed的地址。我试过下面的代码来获取文本,但它没有工作。此外,应用程序将如何从文本字段中取出该URL并用预定义的替换?

- (void) myAlertView:(UIAlertView *)alert clickedButtonAtIndex:(NSInteger)buttonIndex 

{ 

    if (buttonIndex == 1) 

    { // Ok pushed 
     //[data addObject:myTextField.text]; 

    } 

回答

1

UIAlertView中的按钮是零索引。如果确定是你唯一的按钮,是应该是:

if (buttonIndex == 0) 

另外,如果我理解正确的话,你要替换为数组属性的文本。答案将取决于在文本框不过我建议你给一个标记添加到您文本框像这样:

myTextField.tag = 10; //Any number should work 

现在,您可以使用该方法viewWithTag访问该文本框:在它的父视图。

如果文本字段在主视图中,您将检索如下(您的视图控制器内):

UITextField *textfield = (UITextField *)[self.view viewWithTag:tagNumber]; //tagNumber being the tag you assigned to the field 
textfield.text = [self.feeds objectAtIndex:0]; 

这将是类似的,如果字段是在地址簿(在clickedButtonAtIndex方法中): UITextField * textfield =(UITextField *)[alert viewWithTag:tagNumber]; // tagNumber是您分配给该字段的标记 textfield.text = [self.feeds objectAtIndex:0];

编辑:我重读了你写的东西,并且更好地理解了这个问题。我不确定为什么要将URL存储在数组中(除非您打算允许它们输入多个数组)。

如果是这样,你真的不需要预定,但要删除它,你可以做的clickedButtonAtIndex方法如下:

[self.feeds removeAllObjects]; 
[self.feeds addObject:textfield.text]; 

这应该删除您的预定义的字符串,并添加新的。 在此输入代码

+0

仍然没有任何反应,并给出警告nsarray可能不会响应这些代码 – Danny 2011-03-28 09:35:21

+0

它发出警告的原因是因为您不应该在此实例中使用NSArray。 NSArray是只读的。为了能够删除和添加对象,你需要使用NSMutableArray来代替。没有看到你的代码,真的很难理解正在发生的事情。不要期望复制和粘贴我的代码才能工作。 – NRaf 2011-03-28 09:44:56

+0

非常感谢您的帮助。我用NSMutable Array改变了它,警告消失了。我还添加了刷新方法。这是现在这个样子 - (空)myAlertView:(UIAlertView中*)警报clickedButtonAtIndex:(NSInteger的)buttonIndex { \t \t如果(buttonIndex == 1) \t \t \t {// OK推 \t \t的UITextField * url =(UITextField *)[self.view viewWithTag:10]; \t \t [self。提要removeAllObjects]; \t \t [self.feeds addObject:url.text]; \t \t [self refresh]; – Danny 2011-03-28 10:04:15

相关问题