0

我有两个屏幕。我想在第二个屏幕中更改导航栏后单击第一个屏幕按钮。我使用故事板

第一个屏幕代码

-(IBAction) ChangeSecondPageTitle: (id) sender {

SecondViewController *second=[[self storyboard] instantiateViewControllerWithIdentifier:@"second"];
        second.modalTransitionStyle=UIModalTransitionStyleFlipHorizontal;
          second.detailTitle.topItem.title=@"example";
        [self presentModalViewController:second animated:YES];
}

第二个屏幕.h

@property (weak, nonatomic) IBOutlet UINavigationBar *detailTitle;

4

3 回答 3

3

我猜您正在尝试为第二个屏幕导航栏设置标题。

使用导航控制器呈现您的第二个屏幕。

在 SecondDetailViewController 实例中,维护一个 NSString 属性。

@property (strong, nonatomic) NSString *navBarTitle;

在 viewDidLoad 中,只需设置标题。

[self setTitle:navBarTitle];

于 2013-06-17T13:05:48.287 回答
2

实际上,您的代码不起作用的原因是您将属性设置为导航栏,然后viewDidLoad被调用。在viewDidLoad其中加载 nib 文件并返回新分配的导航栏。因此,要解决此问题,请从第一个视图中设置一个全局字符串,然后在第二个视图中viewDidLoad设置您navbartitle. 遵循 Adithya 的回答。

于 2013-06-17T13:21:49.763 回答
1

在第二个屏幕中声明一个属性

@property (strong, nonatomic) NSString *newTitle;

并在 viewDidLoad

     self.title  = _newTitle;

在你的第一个屏幕上

  ...
  second.newTitle = @"NEW_TITLE";
于 2013-06-17T13:15:52.007 回答