Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用解析后端将web链接从UItableViewCell传递到UIWebView_Ios_Objective C_Uitableview_Parse Platform_Uiwebview - Fatal编程技术网

Ios 使用解析后端将web链接从UItableViewCell传递到UIWebView

Ios 使用解析后端将web链接从UItableViewCell传递到UIWebView,ios,objective-c,uitableview,parse-platform,uiwebview,Ios,Objective C,Uitableview,Parse Platform,Uiwebview,我一整天都在忙这个,我在寻求帮助。我正在制作一个应用程序,有人可以在其中键入一个网址,该网址将存储在表视图中。当用户点击该单元格时,它会将他们带到web视图,在那里他们可以查看该站点。我使用parse作为后端来存储用户输入。我没有使用PFQueryTableView 以下是我的tableViewController代码: interface MenuTableViewController : UITableViewController @property(strong, nonatomic)

我一整天都在忙这个,我在寻求帮助。我正在制作一个应用程序,有人可以在其中键入一个网址,该网址将存储在表视图中。当用户点击该单元格时,它会将他们带到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;
@结束


如果有人能帮我,我将不胜感激

你能描述一下当你选择一行时会发生什么吗。。它会把你带到一个空的网络视图吗?或者它什么也不做?它崩溃并给我错误消息:“NSInvalidArgumentException”,原因:“-[WebViewController topViewController]:发送到实例0x7fd72155c7e0的无法识别的选择器”是否使用segue?我不知道您将如何使用web视图访问控制器。是的,我正在使用Segue将表视图链接到web视图。您不应该在didSelectRow中实例化控制器。segue将创建您要创建的实例。您应该在prepareforsgue中传递数据。
@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