Как добавить правую кнопку на UINavigationbar в UITabbar - PullRequest
1 голос
/ 08 ноября 2011

У меня проблема при добавлении правой кнопки на панель навигации.Мой Nib-органайзер выглядит так:

CustomTabViewController: UIViewController

-> CustomTableViewController1: UIViewController

-> CustomTableViewController2: UIViewController

* 1008 Элементы управления в панели инструментов

Мне нужно сохранить входные данные, я могу добавить элемент навигации из контроллера навигации, но я не могу добавить их из View Controller, когда они являются дочерними в элементах панели вкладок.вот мой код:

@interface CustomTabViewController : UIViewController <UITabBarDelegate> {
     NSArray *detailViews;
    IBOutlet UITabBar *tabBar;
    IBOutlet UITabBarItem *tabBarItem1;
    IBOutlet UITabBarItem *tabBarItem2;
    UIViewController *selectedViewController;

}

@property (nonatomic, retain) NSArray *detailViews;
@property (nonatomic, retain) IBOutlet UITabBar *tabBar;
@property (nonatomic, retain) IBOutlet UITabBarItem *tabBarItem1;
@property (nonatomic, retain) IBOutlet UITabBarItem *tabBarItem2;
@property (nonatomic, retain) UIViewController *selectedViewController;
@end

@implementation TabViewController

@synthesize detailViews;
@synthesize tabBar;
@synthesize tabBarItem1;
@synthesize tabBarItem2;
@synthesize selectedViewController;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil number:(NSString *)num{

    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {

        // Custom initialization
    CustomTableViewController1 *tVC1 = [[CustomTableViewController1 alloc]initWithNibName:@"CustomTableViewController1" bundle:nil];        
        CustomTableViewController2 *tVC2 = [[CustomTableViewController2 alloc]initWithNibName:@"CustomTableViewController2" bundle:nil];


        NSDictionary *detail = [[[Services sharedInstance] getDetail:num] copy];

        [tVC1 setDetail:detail];     
        [tVC2 setDetail:detail];
    NSArray *array = [[NSArray alloc] initWithObjects:tVC1, tVC2, nil];
    self.detailViews = array;
    [self.view addSubview:tVC1.view];
    self.selectedViewController = tVC1;

        [array release];
    [TVC release];
    [TVC release];       
        [detail autorelease];

    }
    return self;
}
// ....
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
{
    if (item == tabBarItem1) {

        CustomTableViewController1 *tVC1 = [detailViews objectAtIndex:0];
        [self.selectedViewController.view removeFromSuperview];
        [self.view addSubview:tVC1.view];
        self.selectedViewController = tVC1;

    } else if (item == tabBarItem2) {
        CustomTableViewController2 *tVC2 = [detailViews objectAtIndex:1];
        [self.selectedViewController.view removeFromSuperview];
        [self.view addSubview:tVC2.view];
        self.selectedViewController = tVC2;
    }
}
@end

Контроллеры пользовательского табличного представления находятся внутри панелей вкладок с некоторым значением по умолчанию, которое необходимо изменить пользователем и сохранить.Я могу добавить правую кнопку на панели навигации из моего класса TabViewController, но она не может обогащать информацию внутри CustomTableViewController в панелях вкладок.Есть ли способ добавить правую кнопку на uinavigationbar из Custom Table View Controller, который у меня есть?Можете ли вы показать мне решение?

...