2010-01-11 48 views

Trả lời

43

Bạn nên đặt tiêu đề trong bộ điều khiển chế độ xem bạn thêm vào bộ điều khiển điều hướng của mình.

ví dụ: trong giao diện điều khiển add

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.title = @"My Title"; 
} 

hoặc truy cập vào các mảng viewcontrollers của bạn trực tiếp

 AddFriendViewController *addFriendsView = [[AddFriendViewController alloc] initWithNibName:@"AddFriendViewController" bundle:nil]; 
     [self.navigationController pushViewController:addFriendsView animated:YES]; 
     [[self.navigationController.viewControllers objectAtIndex:0] setTitle:@"myTitle"]; 
     [addFriendsView release]; 
0

Bạn có chắc chắn rằng self.navigationController.navigationItem không nil là khi bạn thiết lập tiêu đề của nó?

14

Mọi bộ điều khiển chế độ xem đều có mục điều hướng. Bạn đang thay đổi mục điều hướng của bộ điều khiển điều hướng ... nhưng điều đó sẽ không bao giờ được nhìn thấy trừ khi bộ điều khiển điều hướng nằm bên trong một bộ điều khiển điều hướng khác! Thay vì

self.navigationController.navigationItem.title = @"hai"; 

bạn muốn

self.navigationItem.title = @"hai"; 

hoặc, nếu tiêu đề mục chuyển hướng của bạn là con số không, bộ điều khiển chuyển hướng sẽ sử dụng tiêu đề điều khiển xem của bạn:

self.title = @"hai"; 

Bạn chỉ nên thiết lập xem tiêu đề, được sử dụng bởi cả thanh điều hướng và thanh tab, trừ khi bạn muốn chỉ định một tiêu đề khác nhau cho mỗi cái trong số đó vì một lý do nào đó.

0

Nếu không có bộ điều khiển xem nào được đẩy lên ngăn xếp, ví dụ: bạn đang hiển thị các viewController ở phía trên cùng của ngăn xếp (đôi khi được gọi rootViewController), bạn có thể làm điều đó với

[rootViewController setTitle:@"Title"]; 

Chú ý rằng bạn phải sử dụng setTitle - rootViewController.title = @ "Title" sẽ thường không hoạt động .

Thực ra, bạn có thể làm điều đó với bất kỳ bộ điều khiển xem nào, ngay cả khi nó chưa được viewDidLoad'ed. Nếu nó được tạo ra theo chương trình, chỉ cần tạo nó với

myViewController *mvc=[[myViewController alloc] initWithNibName:@"nameofnibwithout.xib" bundle:nil]; 

Hoặc bạn có thể khai báo nó như một đối tượng trong các đại biểu ứng dụng, làm cho nó một IBOutlet, tạo một UIViewController và thiết lập các lớp học để MyViewController, và kết nối nó với các IBOutlet vì vậy nó không phải là không.

0

Bạn có thể cần đặt thanh Điều hướng thành "Thanh điều hướng màu đen có lời nhắc" trong tab Thuộc tính trên bộ điều khiển. Đó là những gì làm việc cho tôi.

1

Trong trường hợp của tôi danh hiệu là không hiển thị trên iOS6, khi tôi đặt nó lên trong phương pháp init:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 

    if (self) { 
     self.title = LS(@"Favorites"); 
     self.tabBarItem.title = LS(@"Favorites"); 
     self.tabBarItem.image = [UIImage imageNamed:@"star"]; 
    } 

    return self; 
} 

Vì vậy, nó nên được chuyển từ đó đến ViewDidLoad.

Các vấn đề liên quan