您可以在视图控制器中更改导航栏的特征。您还可以通过直接更改 viewController.view 来更改屏幕的外观。在此示例中,当用户按下发送时,您可以使用以下代码更改导航栏:
UIBarButtonItem *back = [[UIBarButtonItem alloc] initWithTitle:[NSString stringWithFormat:@"Messages:(%i)", messageCount] style:UIBarButtonStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = back;
[back release];
UIBarButtonItem *edit = [[UIBarButtonItem alloc] initWithTitle:@"Edit" style:plain target:self action:@selector(editMessage)];
self.navigationItem.rightBarButtonItem = edit;
[edit release]
然后你实现editMessage:
- (void)editMessage {
//Go into edit mode, whatever that code looks like.
}
然后,在您点击发送后,他们根本无法调用 [self.textField resignFirstResponder],因此键盘保持在那里。您会注意到,如果您加载旧对话,则视图会加载屏幕底部的发送框且没有键盘。这符合 UITextField 对象的标准行为。
UIView 的帮助文件中解释了直接入侵视图,这可能会很痛苦。老实说,我不确定他们是如何绘制漂亮的 IM 界面的,我将把它留给另一位专家。