わかりましたので、私はこれをさまざまな方法で試しました...
現時点ではUINavigationBar
、IB に を配置しました。次に、で宣言しIBOutlet
ます。
そこから、何を試してもタイトルを変更できないようです。だけでもViewDidLoad
。
また、navbar のデリゲートを割り当てる必要はありませんか?
これが私のコードです:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController < UITableViewDataSource, UITableViewDelegate>
{
NSArray *myArrayOne;
NSArray *myArrayTwo;
UITextView *myTextView;
UINavigationBar *myNavBar;
}
@property (nonatomic, retain) NSArray *myArrayOne;
@property (nonatomic, retain) NSArray *myArrayTwo;
@property (nonatomic, retain) IBOutlet UITextView *myTextView;
@property (nonatomic, retain) IBOutlet UINavigationBar *myNavBar;
@end
と:
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
//Synthesising anything with a property call in the .h file.
@synthesize myArrayOne;
@synthesize myArrayTwo;
@synthesize myTextView;
@synthesize myNavBar;
- (void)viewDidLoad
{
//declaring and instantiating datapaths and also
// reading into arrays from plist.
NSString *datapath1 = [[NSBundle mainBundle] pathForResource:@"myListOne" ofType:@"plist"];
NSString *datapath2 = [[NSBundle mainBundle] pathForResource:@"myListTwo" ofType:@"plist"];
myArrayOne = [[NSArray alloc] initWithContentsOfFile:datapath1];
myArrayTwo = [[NSArray alloc] initWithContentsOfFile:datapath2];
self.navigationItem.title = @"Hi";
[super viewDidLoad];
}
#pragma mark - TableView Delegate stuff
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//myNavBar.title = [myArrayOne objectAtIndex:indexPath.row];
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
#pragma mark - TableView Datasource stuff
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
//returns amount of items inside myArrayOne as amount of rows
return [myArrayOne count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *myCell = nil;
myCell = [tableView dequeueReusableCellWithIdentifier:@"myReuseCell"];
if (myCell == nil)
{
myCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"myReuseCell"];
}
myCell.textLabel.text = [myArrayOne objectAtIndex:indexPath.row];
return myCell;
}
@end
タイトルを変更する実際のコードは、私が試した 1 つの方法にすぎません...
その他の方法で?また、IB のナビゲーションバーを何かにリンクする必要がありますか?