使用解析后端将UItableViewCell的Web链接传递给UIWebView

时间:2015-04-21 18:44:44

标签: ios objective-c uitableview parse-platform uiwebview

我整天都被困在这里,我正在寻求一些帮助。我正在制作一个应用程序,其中有人可以输入一个网址,该网址将存储在表格视图中。当用户点击该单元格时,它将把他们带到Web视图,在那里他们可以查看该站点。我使用parse作为我的后端来存储用户输入。 (我没有使用PFQueryTableView)

这是tableViewController的代码:

interface MenuTableViewController : UITableViewController

@property(strong, nonatomic) NSMutableArray *referralArray;

@property (strong, nonatomic) PFObject *selectLink;
@property (nonatomic, strong) NSArray *webInput;
@property (nonatomic, strong) UIRefreshControl *refreshControl;

@end

@interface MenuTableViewController ()

@end

@implementation MenuTableViewController
@synthesize referralArray;

- (void)viewDidLoad
{
    [super viewDidLoad];



    PFUser *currentUser = [PFUser currentUser];
    if (currentUser) {
        NSLog(@"Current user: %@", currentUser.username);
    }
    else {
        [self performSegueWithIdentifier:@"showLogin" sender:self];
    }

    //refresh inbox
    self.refreshControl = [[UIRefreshControl alloc] init];
    [self.refreshControl addTarget:self action:@selector(retrieveMessages) forControlEvents:UIControlEventValueChanged];


    //swipe to delete
    self.tableView.allowsMultipleSelectionDuringEditing = NO;


}


- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    [self.navigationController.navigationBar setHidden:NO];



}

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    // Return the number of sections.
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // Return the number of rows in the section.
    return [self.webInput count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"refCell"forIndexPath:indexPath];

    PFObject *web = [self.webInput objectAtIndex:indexPath.row];
    cell.textLabel.text = [web objectForKey:@"RefLink"];



    return cell;
}

#pragma mark - Table view delegate

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    self.selectLink = [self.webInput objectAtIndex:indexPath.row];
//NSString *fileType = [self.selectLink objectForKey:@"RefLink"];
    //[self performSegueWithIdentifier:@"webSegue" sender:self];


    NSDictionary *dict = [self.webInput objectAtIndex:indexPath.section];

    NSString *link=[dict valueForKey:@"link"];

    //Create a URL object.
    NSURL *url = [NSURL URLWithString:link];

    UINavigationController *nav = [self.storyboard instantiateViewControllerWithIdentifier:@"WebView"];
    WebViewController *web = (WebViewController *)nav.topViewController;
    web.webLink =url;


}

//swipe to delete
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
    // Return YES if you want the specified item to be editable.
    return YES;
}


- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        //try this
        PFObject *object = [self.webInput objectAtIndex:indexPath.row];
        [object deleteInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
            [self refreshControl];
            [self.tableView reloadData];



        }];
    }
}


#pragma mark - Helper methods
- (void)retrieveMessages {
    PFQuery *query = [PFQuery queryWithClassName:@"Referrals"];
    //[query whereKey:@"recipientIds" equalTo:[[PFUser currentUser] objectId]];

    //run the query here for messages
    [query orderByDescending:@"createdAt"];
    [query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
        if (error) {
            NSLog(@"Error: %@ %@", error, [error userInfo]);
        }
        else {
            // We found messages!
            self.webInput = objects;
            [self.tableView reloadData];
            NSLog(@"Retrieved %lu messages", (unsigned long)[self.webInput count]);
        }

        if ([self.refreshControl isRefreshing]) {
            [self.refreshControl endRefreshing];
        }
    }];
}

#pragma mark - LogOut
- (IBAction)logout:(id)sender {
    [PFUser logOut];
    [self performSegueWithIdentifier:@"showLogin" sender:self];
}

#pragma mark - Segue
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"showLogin"]) {
        [segue.destinationViewController setHidesBottomBarWhenPushed:YES];
    }
    else if ([segue.identifier isEqualToString:@"webSegue"]) {
        [segue.destinationViewController setHidesBottomBarWhenPushed:YES];
        WebViewController *webView = (WebViewController *)segue.destinationViewController;
        webView.webAddress = self.selectLink;
    }
}

@end

如果有人能帮助我,我会非常感激!

0 个答案:

没有答案