したがって、rightbarbuttonitem が消えるという問題があります。このビューを読み込むには 2 つの方法があります。最初の起動時に、ユーザーが (最初のビューから) 名前を入力した後に読み込まれます。2 回目 (アプリの終了後) に、保存されているデータベースに名前が存在するかどうかを確認し、存在する場合はすぐにビューを読み込みます。この 2 回目は、ボタンが表示されない場所です。
ボタンは、もともとここにあるビューの viewDidLoad に設定されていました (最初の読み込みではまだここに設定されています)。
if (self.navigationItem.rightBarButtonItem == nil){
addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(buttonPressed)];
self.navigationItem.rightBarButtonItem = addButton;
[self.navigationItem.rightBarButtonItem retain];
}
次に、AppDelegate の .m に、2 回目の読み込みで解決されると考えるボタンを追加しました。
if(success){
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
UIViewController *control = [[ViewController alloc] initWithNibName:@"myNib" bundle:nil];
[control retain];
UINavigationController *navControl = [[UINavigationController alloc] initWithRootViewController:control];
[navControl retain];
[self.window setRootViewController:navControl];
if (navControl.navigationItem.rightBarButtonItem == nil){
addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(buttonPressed)];
navControl.navigationItem.rightBarButtonItem = addButton;
[navControl.navigationItem.rightBarButtonItem retain];
}
//[navControl release];
[self.window makeKeyAndVisible];
return;
App Delegate のヘッダーとビューのヘッダーでの addButton の宣言は次のとおりです。
UIBarButtonItem *addButton;
@property (nonatomic, retain) UIBarButtonItem *addButton
他の投稿では、viewDidLoad/viewWillAppear をチェックするように言われていますが、最初のコードの宣伝文句をそれらのいずれかに入れても問題は解決しません。