2012-06-13 33 views
0

這段代碼是否假設在我連接的ViewController上設置標題?ios Storyboard - 將標題推送到View Controller上

2個UIViewControllers通過push segue連接 - 第一個嵌入在NavigationController中。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
if ([[segue identifier] isEqualToString:@"settingsSegue"]) 
{ 

    self.navigationItem.title = [[NSString alloc] initWithFormat:@"Custom Title"]; 

} 
} 

它不適用於我,但語法是正確的。

先謝謝了:-)

回答

1

設置在目的地的viewDidLoad標題視圖 - 控制在目標VC使用屬性:

if ([[segue identifier] isEqualToString:@"settingsSegue"]) { 
    MyDestinationViewController *mdvc = segue.destinationViewController; 
    mdvc.myTitle = [[NSString alloc] initWithFormat:@"Custom Title"]; 
} 

然後在MyDestinationViewController.h的viewDidLoad事件:

@property (nonatomic,strong) NSString *myTitle; 

In MyDestinationViewController.m:

@synthesize myTitle; 

最後在viewDidLoad

self.title = myTitle; 
+0

對不起看起來前途無量:-),再沒有任何錯誤,但它不是通過遺憾 –

+0

我得到它的工作到來 - 有一個金髮碧眼的時刻,忘了一個視圖控制器鏈接到頭文件在故事板:-) –

2

以上回答對我的作品有一個例外......

變化

self.title = myTitle; 

self.navigationItem.title = myTitle; 
+0

不知何故myTitle值不推送 - 我檢查與NSLog返回(空) –

0

您可以在SEGUE直接設置標題爲好,沒有必要去通過屬性:

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([segue.identifier isEqualToString:@"settingsSegue"]) {  
     segue.destinationViewController.navigationItem.title = @"Custom Title"; 
    } 
} 

或者說,我需要什麼,給推視圖控制器的標題設置的標題單擊的單元格:

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([segue.identifier isEqualToString:@"settingsSegue"]) { 
     NSIndexPath *myIndexPath = [self.tableView indexPathForSelectedRow]; 
     UITableViewCell *cell = [self tableView:self.tableView cellForRowAtIndexPath:myIndexPath];   
     segue.destinationViewController.navigationItem.title = cell.textLabel.text; 
    } 
} 
相關問題