NSS*_*Sec 14 iphone cocoa-touch uitoolbar uinavigationcontroller
我有一个UINavigationController,它被推送到DetailsViewController.在这个DetailsViewController中,我想使用每个UINavigationController附带的工具栏(至少从iPhone OS3.0开始).
因此,在我的DetailsViewController中的viewDidLoad中,我创建了一个UIBarButtonItem,我将它添加到一个数组并将其交给导航控制器:
- (void) viewDidLoad {
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemBookmarks target:self action:@selector(selectTemplate)];
NSArray *items = [NSArray arrayWithObject: item];
TestUIAppDelegate *delegate = [[UIApplication sharedApplication] delegate];
UINavigationController *navController = delegate.navigationController;
[navController setToolbarItems: items animated:NO];
[navController setToolbarHidden: NO animated: YES];
}
Run Code Online (Sandbox Code Playgroud)
但是,出于某种原因,当UIToolbar动画到屏幕上时,该项目不会添加到工具栏中.
是否有某种特定的顺序需要使用UIToolbar完成这项工作?
PS:应用程序处于(强制)横向模式,navigationController.view对其进行了旋转变换.这与它有什么关系吗?
NSS*_*Sec 37
已经做了一些挖掘和调试,我得出结论,我尝试修改的方法navigationController
是错误的.相反,我应该只设置DetailsViewController的toolbarItems属性.
在那之后,我的代码运行良好:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemBookmarks target:self action:@selector(selectTemplate)];
NSArray *myToolbarItems = [[NSArray alloc] initWithObjects: item, nil];
[self setToolbarItems: myToolbarItems];
[myToolbarItems release];
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9911 次 |
最近记录: |