標準のView Controllerに埋め込まれたテーブルビューがあります。テーブルビューには、表示したいツールバーがあります。
現在、ツールバーは非表示のままです。
これは私が試しました:
- ツールバーを埋め込みテーブル ビュー (コード + ストーリーボード) に表示するように設定します。
- 親View Controller(コード+ストーリーボード)に表示するようにツールバーを設定します。
- ビュー コントローラーには表示されず、埋め込みテーブル (コード + ストーリーボード) に表示されるようにツールバーに設定します。
埋め込みビュー経由ではなくテーブルに直接アクセスすると、ツールバーが表示されます (正しく表示されます)。ビューを埋め込むアクションによってツールバーが削除されますか?
埋め込みビューに tableviews ツールバーを表示するにはどうすればよいですか?
編集: 新しいコード
ParentViewController.h
#import <UIKit/UIKit.h>
#import <MessageUI/MessageUI.h>
#import "childTable.h"
@interface ParentViewController : UIViewController <MFMailComposeViewControllerDelegate, UpdateParentProtocol>
@property (weak, nonatomic) IBOutlet UIBarButtonItem *emailButton;
@property (weak, nonatomic) NSString *buttonEnabled;
@property (weak, nonatomic) ChildTable *childTableVC;
@end
parentViewController.m
#import "ParentViewController.h"
@interface ParentViewController () <MFMailComposeViewControllerDelegate>
@end
@implementation ParentViewController
@synthesize emailButton;
@synthesize buttonEnabled;
@synthesize childTableVC;
- (void)viewDidLoad
{
[super viewDidLoad];
[self.childTableVC setDelegate:self];
}
-(void) isButtonEnabled:(NSString *)enabledX {
NSLog(@"isButtonEnabled");
enabledX = buttonEnabled;
if ([buttonEnabled isEqualToString:@"FALSE"])
{
emailButton.enabled = FALSE;
}
else
{
emailButton.enabled = TRUE;
}
}
childTable.h
#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>
@protocol UpdateParentProtocol <NSObject>
@required
-(void) isButtonEnabled: (NSString *) enabledX;
@end
@interface childTable: UITableViewController {
id <UpdateParentProtocol> delegate;
}
//@property (weak, nonatomic) IBOutlet UIBarButtonItem *emailButton;
@property (strong, nonatomic) NSString *enabledX;
@property (strong, nonatomic) id <UpdateParentProtocol> delegate;
childTable.m
-(void) tableView:(UITableView *)tableView didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"TableEditingEnded");
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
self.myArray = [defaults mutableArrayValueForKey:@"favourite_views_key"];
if (myArray == 0) {
enabledX = @"FALSE";
NSLog(@"PASSEDFALSE");
[[self delegate] isButtonEnabled:enabledX]; }
else {
enabledX = @"TRUE";
NSLog(@"PASSEDTRUE");
[[self delegate] isButtonEnabled:enabledX]; }
}
コードを実行すると、TableEditingEnded と PASSEDTRUE から NSLog が出力されますが、isButtonEnabled は出力されません。これは、 -(void) isButtonEnabled:(NSString *)enabledX が呼び出されていないことを示唆しています。理由を教えてください。