私のアプリでは、「フィード リンク」を tableView に読み込みます。それはうまくいきます。しかし今、私は を使用してそのリンクを変更する必要がありUIPickerView
ます。
私のviewDidLoad
中には、フィード項目を にロードするためのこのコードがありますtableview
。
初めてうまくいきます。
// Parse
feedURL = [NSURL URLWithString:FEEDSFULLPAGE];
feedParser = [[MWFeedParser alloc] initWithFeedURL:feedURL];
feedParser.delegate = self;
feedParser.feedParseType = ParseTypeFull; // Parse feed info and all items
feedParser.connectionType = ConnectionTypeAsynchronously;
[feedParser parse];
このコードを使用して、ナビゲーション バーUIPickerView
から呼び出します。UIBarButtonItem
- (void) showPicker:(id)sender {
self.tableView.scrollEnabled = false;
categorie.enabled = NO;
UIColor *myColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5];
rect = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
[rect setBackgroundColor:myColor];
[self.view addSubview:rect];
pickerviewToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 542, 320, 40)];
pickerviewToolbar.barStyle = UIBarStyleBlackTranslucent;
pickerviewToolbar.tintColor = nil;
[pickerviewToolbar sizeToFit];
UIBarButtonItem *cancelButton = [[[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(AnnullaPickerView)] autorelease];
UIBarButtonItem *flexSpace = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil] autorelease];
UIBarButtonItem *doneButton = [[[UIBarButtonItem alloc] initWithTitle:@"Done" style:UIBarButtonItemStyleDone target:self action:@selector(categoriaSelezionata:)] autorelease];
[pickerviewToolbar setItems:[NSArray arrayWithObjects:cancelButton, flexSpace, doneButton, nil]];
pickerView.delegate = self;
pickerView.showsSelectionIndicator = YES; // note this is default to NO
// Add the picker
pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0,585,0,0)];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.3];
CGAffineTransform transform = CGAffineTransformMakeTranslation(0, -400);
pickerView.transform = transform;
pickerviewToolbar.transform = transform;
[self.view addSubview:pickerView];
[self.view addSubview:pickerviewToolbar];
[UIView commitAnimations];
[pickerView release];
[pickerviewToolbar release];
}
UIPIckerView の 1 行が選択されたら、次のようにします。
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
if ([[dataArray objectAtIndex:row] isEqual:@"Ultime"]) {
feedURL = [NSURL URLWithString:@"http://www.tarantocrasbasket.com/index.php?option=com_ninjarsssyndicator&feed_id=8&format=raw"];
NSLog(@"You selected this: %@", [dataArray objectAtIndex: row]);
NSLog(@"Ultime: %@", feedURL);
} }
そして最後に、の完了ボタンをクリックするとUIPickerView
:
-(void) categoriaSelezionata:(id)sender {
self.tableView.scrollEnabled = true;
categorie.enabled = YES;
[rect removeFromSuperview];
[pickerView removeFromSuperview];
[pickerviewToolbar removeFromSuperview];
[self refresh]; }
関数「refresh」を呼び出して、新しいリンクから新しいアイテムを解析しましたが、アプリがクラッシュしました!
リンクが正しいかどうかを確認するために NSLog を配置すると、それもクラッシュします。
Xcode エラーは次のとおりです。
EXC_BAD_ACCESS (コード=2、アドレス=0xf)
なぜこれが機能しないのですか?