この問題を説明するために、私はその中に呼び出されViewControllerA
たものを持っていました。と from私はセグエしますが、 toと呼ばれる追加を追加する必要がありました。しかし、追加すると、アプリがクラッシュする原因となったテーブルに問題が発生し始めました。UITableView
commentTableView
commentTableView
ViewControllerB
UITableView
mentionedFriendTable
ViewControllerA
mentionFriendTable
私が抱えている問題
commentTableView
と呼ばれる別のクラスに配置し、justCommentsTable
そのクラスUITableViewController class
を に追加することにしましたViewController
。にいる必要があるからではなく、別のクラスに配置するcommentTableView
必要があります。そして数時間後、ついにそれが機能するようになりました。しかし、今では最初に必要だったセグエが機能せず、クラッシュしてクラッシュしますmentionFriendTable
mentionFriendTable
ViewControllerA
ViewControllerB
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;
commentTable
tableview
justCommentsTable
がスルーにViewControllerB
接続されているため、このクラッシュが発生していることはわかっています。ViewControllerA
MainStoryboard.storyboard
justCommentsTable
私の質問
別のクラスにあるデータに引き続きセグエViewControllerA
して渡す方法はありますか。ViewControllerB
commentTableView
問題に関連するコードを配置します。重要なコードが欠落しているかどうか教えてください。
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;
}
}
問題がどこにあるかはわかっていますが、それを修正する方法がわかりません。私は私のような問題を探しましたが、確かな答えのあるものを見つけることができません。誰かが助けることができれば、それは大歓迎です。ありがとう!