1

この問題を説明するために、私はその中に呼び出されViewControllerAたものを持っていました。と from私はセグエしますが、 toと呼ばれる追加を追加する必要がありました。しかし、追加すると、アプリがクラッシュする原因となったテーブルに問題が発生し始めました。UITableViewcommentTableViewcommentTableViewViewControllerBUITableViewmentionedFriendTableViewControllerAmentionFriendTable

私が抱えている問題

commentTableViewと呼ばれる別のクラスに配置し、justCommentsTableそのクラスUITableViewController classを に追加することにしましたViewController。にいる必要があるからではなく、別のクラスに配置するcommentTableView必要があります。そして数時間後、ついにそれが機能するようになりました。しかし、今では最初に必要だったセグエが機能せず、クラッシュしてクラッシュしますmentionFriendTablementionFriendTableViewControllerAViewControllerB

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Receiver (<justCommentsTable: 0x21032160>) has no segue with identifier 'segueToViewControllerB'

マイストーリーボード

私のストーリーボードViewControllerAにはその中にあり、以下のコードでto をtableViewリンクしました。 fromがどのようになる かを説明しますtableview@property (strong, nonatomic) IBOutlet UITableView *commentTable;
commentTabletableviewjustCommentsTable

がスルーにViewControllerB接続されているため、このクラッシュが発生していることはわかっています。ViewControllerAMainStoryboard.storyboardjustCommentsTable

私の質問

別のクラスにあるデータに引き続きセグエViewControllerAして渡す方法はありますか。ViewControllerBcommentTableView

問題に関連するコードを配置します。重要なコードが欠落しているかどうか教えてください。

ViewControllerA.h

#import "justCommentsTable.h"

@interface ViewControllerA : UIViewController<UITableViewDelegate, UITableViewDataSource>{


       // in justCommentsTable.m I add this controller to the view
            justCommentsTable *commentsController;


}


      //   this is the table that is link up in storyboard
        @property (strong, nonatomic) IBOutlet UITableView *commentTable;

      //this is my mentions table that needs to be in ViewControllerA
        @property (nonatomic, strong) UITableView *mentionTableView;

@end

ViewControllerA.m

- (void)viewDidLoad
{

[super viewDidLoad];

        **// i set up the mentionTable here**        

self.mentionTableView.transform = transform;
self.mentionTableView.delegate = self;
self.mentionTableView.dataSource = self;
self.mentionTableView.tag = 1;

[self.view addSubview:self.mentionTableView];

        **// i set up the commentTable here**        

if (commentsController == nil) {
        commentsController = [[justCommentsTable alloc] init];
    }


    [commentTable setDataSource:commentsController];
    [commentTable setDelegate:commentsController];
    [commentsController setHomeUserID:homeUserID];
    [commentsController setGetEventHostIDforNotif:getEventHostIDforNotif];
    [commentsController setGeteventIDfrSEgue:geteventIDfrSEgue];
    [commentsController setGetEVENTNamefrSegue:getEVENTNamefrSegue];

     **// i set commentsController to the Tableview in justCommentsTable class**        

            commentsController.view = commentsController.tableView;

}

justCommentsTable.h

@interface justCommentsTable : UITableViewController<UITableViewDelegate, UITableViewDataSource,UITextFieldDelegate,UITextViewDelegate>

@end

justCommentsTable.m

@implementation justCommentsTable
   //buttonTag is used for a button on the customCells
int buttonTag;

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

    static NSString *CellIdentifier = @"commentCell";

    customCell *cell =(customCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[customCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
    NSDictionary *commmentDict = [CommentArray objectAtIndex:indexPath.row];
    NSString *commentText = [commmentDict objectForKey:@"comment"];


    cell.textLabel.text = commentText;

      // i need a custom button on the cells for other reasons
    [cell.cellButton addTarget:self action:@selector(showButtonIndex:) forControlEvents:UIControlEventTouchUpInside];

 return cell;
}



-(void)showButtonIndex:(UIButton*)button{
    buttonTag = button.tag;
     /*
     buttonTag gets set here, and used in the prepareForSegue method
      to find out what row the button was on.
      */

    [self performSegueWithIdentifier:@"segueToViewControllerB" sender:self];

}


- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

if ([segue.identifier isEqualToString:@"segueToViewControllerB"]){
    //segue to profile from image button
    ViewControllerB *VCB = segue.destinationViewController;

    NSDictionary *commentDic = [CommentArray objectAtIndex:buttonTag];
     /*
          buttonTag was used to select the objectAtIndex
      */

   NSString *commentTitle = [commentDic objectForKey:@"comment_title"];

    VCB.title = commentTitle;
   }
}

問題がどこにあるかはわかっていますが、それを修正する方法がわかりません。私は私のような問題を探しましたが、確かな答えのあるものを見つけることができません。誰かが助けることができれば、それは大歓迎です。ありがとう!

4

0 に答える 0